1. 题目背景与目标解析
这道题目来自猿人学内部练习平台,属于典型的Web逆向工程实战案例。核心任务是获取100页数据的总和,但页面数据请求受到加密参数保护。具体表现为:每次翻页请求时,服务器会校验cookie中名为"m"的参数值,只有携带正确加密值的请求才能获取数据。
从技术角度看,这道题目融合了三个关键考察点:
- 网络请求参数分析能力(定位关键加密参数)
- JavaScript混淆代码的逆向分析(OB混淆技术)
- 加密算法的识别与还原(变种MD5特征识别)
2. 关键加密参数定位
2.1 初始请求分析
首先通过浏览器开发者工具(DevTools)的Network面板观察页面请求。发现翻页时(如点击第2页)会发送一个XHR请求,请求头中携带的cookie包含一个名为"m"的参数,其值为一串看似随机的字符。
通过对比多次请求发现:
- 其他参数如page、t等值都直接可见且逻辑清晰
- 唯独m参数每次都会变化,明显经过加密处理
- 删除m参数后请求会触发网站风控机制
2.2 断点调试技巧
在Sources面板设置XHR断点是个高效的方法:
- 打开DevTools → Sources → Event Listener Breakpoints
- 勾选"Script"下的"Script First Statement"
- 删除现有cookie中的m值
- 执行翻页操作,断点会自动在关键位置暂停
更精准的做法是使用cookie hook技术:
javascript复制(function() {
var cookieTemp = '';
Object.defineProperty(document, 'cookie', {
set: function(val) {
if(val.indexOf('m=') > -1){
debugger;
}
cookieTemp = val;
return val;
},
get: function() {
return cookieTemp;
解锁全文
加入我们的会员,获取最新、最热、最精彩的开发者技术内容