声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
逆向目标
- 网址: aHR0cHM6Ly93d3cuaWNrZXkuY24v
- 目标: 搜索接口的p值生成
流程分析
打开chrom的控制台抓包寻找数据接口
这里的font_ident 是字体文件的链接 源码中有可自行正则匹配。_csrf同上。p值就是我们研究的对象
堆栈分析
下个xhr断点,往回查看堆栈
到如图所示的位置,就找到了p值得生成位置 然后断点打这里开始分析p值是如何生成得。
可以看到这是个三元表达式 返回结果是window[“i”],然后清空浏览器缓存hook i值是怎么来的
(function (){
'use strict';
Object.defineProperty(
window, 'i', {
set: function(v) {
debugger;
return v;
}
}
)
}
)();
去他的上一级查看生成流程
会发现自己进了vm环境中 在向上一级查看堆栈
然后查看当前函数体 看看这个值是怎么来得。
重新下断点刷新页面,4699b4这个参数 查看上一级堆栈 可以发现就是一个时间戳+要查询得型号(base64加密了一下) ,然后拼接了window上得一个值,在清空浏览器 hook一下这个值是怎么来得。
最后这个56d6就是我们要研究得对象了,然后看当前得函数体,看看这个值得生成过程。
这样流程就很清晰了 然后缺啥扣啥 就算完了。
这里有个注意事项就是在vm代码里给window.i赋值得时候魔改了md5加密 这里需要注意下