JS逆向之-高考志愿网-请求参数加密
网址:http://www.xingaokaotb.com/colleges/search
加密参数: U-sign
分析过程 详细介绍
多次请求确定 加密参数
请求时发现载荷没有加密,开始尝试单页请求,发现能正常获取数据
再次发起请求,修改载荷下一页参数,发现请求异常,多次尝试确定在不修改请求头的情况下,修改
载荷中的页码参数 并不能得到响应数据,从而怀疑应该时请求头中的某个参数进行了加密,最终确定加密参数为U-sign
寻找U-sign
的加密位置
搜索U-sign
参数,找到13个匹配项在可疑的地方打上断点,然后下滑页面加载新的请求,发现断在此处
分析加密过程
e.url为数据请求的接口,e.data为一个对象,进入o函数分析
o函数中可进行单步调式,能更清楚的分析流程,发现o函数中主要是一个判断
经过调式发现每次执行的都是else的语句
经过分析加密函数发现o变量就是加密的参数,而n(o)就是最终U-sign
加密的结果
对比请求的载荷发现o的值就是请求时的载荷参数,现在只需进一步分析n函数的加密流程
对n函数代码进行改写,r不需要传值
function n(e, r) {
var n = t.wordsToBytes(a(e, r));
return r && r.asBytes ? n : r && r.asString ? o.bytesToString(n) : t.bytesToHex(n)
}
在编辑器中执行js代码 发现异常,只需要将缺少的函数补上即可
补全n函数的过程还是比较复杂的不推荐,这里可以选择用webpack去完成
找到加载器的位置,然后补齐缺少的函数即可
这个网站的加密方式其实就是标准的md5加密,也可以用python直接去复现。