这次依然是以黎明大学的教务管理系统为例,因为之前我认为他的POST是很简单的,可是后来发现,他进行了加密,而且用其他的信息来加密另一个信息,所以我这次重新分析一遍,这里涉及到javascript,我都不会,但是通过百度都能查到,下面看我是怎么一步步挤牙膏的。
1.读表单
我们先来读表单的内容,选取可能被加密的
style="WIDTH:134px;HEIGHT:20px"
type="password" maxLength="25"
name="txt_pewerwedsdfsdff"
value="" οnblur="chkpwd(this)"
οnkeyup="chkpwd(this)">
name="txt_sdertfgsadscxcadsads"
style="WIDTH:134px;HEIGHT:20px"
οnblur="chkyzm(this)" οnkeyup="chkyzm(this)"
maxlength="4">
这里我们可以看到,有涉及到两个有关javascript的。
2.查资料
通过查阅资料:
onkeyup 事件会在键盘按键被松开时发生。(瞬间执行)
onblur 事件会在对象失去焦点时发生。(移出输入框点击随机位置后后执行)
我们跳到这里他涉及到的两个chkpwd()和chkyzm()
3.整理分析代码
原来的代码很乱,我给他整理了
function chkpwd(obj) {
if(obj.value!='') {
var s=md5(document.all.txt_asmcdefsddsd.value+md5(obj.value).substring(0,30).toUpperCase()+'11317').substring(0,30).toUpperCase();
document.all.dsdsdsdsdxcxdfgfg.value=s;
}
else {
document.all.dsdsdsdsdxcxdfgfg.value=obj.value;
}
}
function chkyzm(obj) {
if(obj.value!='') {
var s=md5(md5(obj.value.toUpperCase()).substring(0,30).toUpperCase()+'11317').substring(0,30).toUpperCase();
document.all.fgfggfdgtyuuyyuuckjg.value=s;
}else {
document.all.fgfggfdgtyuuyyuuckjg.value=obj.value.toUpperCase();
}
}
其实我看不懂这些代码,但是我可以查,我先从参数开始看起
把this传给obj,这里的this我们要知道他是谁
没有找到详细的回答,但我从下面的代码猜测
obj.value
这个this代替的就是传递过来的参数的那个对象本身,而这个value就是他的值。
我们再接着读代码,
toUpperCase() 方法用于把字符串转换为大写。
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
比如substring(0:30)就是取前30个字符。
这里就是繁琐的大写,取30位,还有一个就是MD5加密,用的是hash算法。
md5()这个函数可以在他导入的js看到
这里我们就不打开了,代码太长,而且MD5加密可以通过python的库函数加密。
4.尝试实现
...