强智教务系统的登录页面有个验证码,为了自动化和简单化,采用了联众答题模块,自动识别和验证
下面是我的点数,说明已经可以自动识别验证码并且可以使用了,当然,这个没有什么难度。
今天解决的是账号密码加密问题。
这个是我抓到的包
很显然,账号密码进行了加密处理,接下来要进行js逆向,
找到关键函数,加个断点。
dataStr = "Gc031n7qOX6ALgyH0874e9t789JCXb7Kc5c0WE339062eeg#33221313323132323223"
这个就是他的加密方法,不是常见的md5、ras而是动态加密,
首先,他先访问这个url,
Request URL:
http://jwxt.qlu.edu.cn/Logon.do?method=logon&flag=sess
使用了ajax动态刷新,得到了
dataStr = "Gc031n7qOX6ALgyH0874e9t789JCXb7Kc5c0WE339062eeg#33221313323132323223"
后面的加密算法就显而易见了。
下面是我整理的强智加密代码,只要获得dataStr,user,password,就可以直接套用了。
function jiami(dataStr, user, password) {
if (dataStr == "no") {
return false;
} else {
var scode = dataStr.split("#")[0];
var sxh = dataStr.split("#")[1];
var code = user + "%%%" + password;
var encoded = "";
for (var i = 0; i < code.length; i++) {
if (i < 20) {
encoded = encoded + code.substring(i, i + 1) + scode.substring(0, parseInt(sxh.substring(i, i + 1)));
scode = scode.substring(parseInt(sxh.substring(i, i + 1)), scode.length);
} else {
encoded = encoded + code.substring(i, code.length);
i = code.length;
}
}
return encoded;
}
}
function getPwd() {
return jiami("n97g04282Ts2995eHw4YD13Rt8j4a0472r124839N#23311132332212212313", "201703040003", "aini123")
}
账号密码不用试了,我瞎编的,记住是动态的,先访问sess