最近闲的没事,想研究下学校的教务系统的post登录~
直接抓包,发现数据很乱
后来经过测试,发现前边的数据并不是重要的,可以直接删掉,重要的在于后边的
typeName=%D1%A7%C9%FA&dsdsdsdsdxcxdfgfg=1AF54DDEF6087B29C7997118B2C94F&fgfggfdgtyuuyyuuckjg=6E0BBD3E35AD72016179E79C70AB04&Sel_Type=STU&txt_asmcdefsddsd=123456&txt_pewerwedsdfsdff=123456&txt_sdertfgsadscxcadsads=uub6
经过多次测试,发现typeName的值是固定的txt_asmcdefsddsd这个值是学号
txt_pewerwedsdfsdff这个值得密码
txt_sdertfgsadscxcadsads这个值是当时的验证码
还有两个关键参数dsdsdsdsdxcxdfgfg和fgfggfdgtyuuyyuuckjg,前者只要学号和密码一样,就保持不动,后者每次都会改变,长度为30个字符(好像没有啥加密是30位,苦笑)
分析网页js,发现一段代码:
删掉没用的东西,找到关键进行计算的地方:
var s=md5(document.all.txt_asmcdefsddsd.value+md5(obj.value).substring(0,30).toUpperCase()+'12451').substring(0,30).toUpperCase()
var s=md5(md5(obj.value.toUpperCase()).substring(0,30).toUpperCase()+'12451').substring(0,30).toUpperCase()
document.all.txt_asmcdefsddsd.value这个是学号,跟前边的可以对上,上边的obj.value是密码,下边的obj.value是验证码这样就好办了,照葫芦画瓢,改写成易语言 的就OK了
计算dsdsdsdsdxcxdfgfg 文本型 user 文本型 pwd 文本型
s =
到大写 ( 取文本左边 ( 取数据摘要 ( 到字节集 ( user +
到大写 ( 取文本左边 ( 取数据摘要 ( 到字节集 ( pwd
) ), 30
) ) +
“12451” ) ), 30
) )
返回 ( s
) 计算fgfggfdgtyuuyyuuckjg 文本型 code 文本型
s =
到大写 ( 取文本左边 ( 取数据摘要 ( 到字节集 ( 到大写 ( 取文本左边 ( 取数据摘要 ( 到字节集 ( 到大写 ( code
) )
) , 30
) ) +
“12451” ) ), 30
) )
返回 ( s
)
代码中的12451应该是一个授权码,看了同学学校的教务系统(也是青果的)这个值不一样,其他地方都一样