本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
https://match.yuanrenxue.cn/match/2
首先已经告诉了我们这个网站是动态cookie,所以我们首先打开devtools看看哪个cookie,然后我们用代码运行下
然后发现cookie的有效期很短,我们搜索有没有set_cookie 发现并没有
然后我们用fiddler 抓包看看
我们搜索这个cookie的值
有时候可能hook不到值,没关系 点击下一页去hook 不要刷新去hook
发现是从第二请求开始的,所以cookie 大概率是第一个请求哪里生成的 cookie
在次之前,我们打开浏览器中去找cookie的生成点。
打开脚本 按步追栈追到这个cookie生成的文件中。也就是第一个请求发送的地方
然后我们放开断点。
走到m这个断点的地方。然后向下追栈
然后就找到了m的生成地址了
把他们都替换掉
document["cookie"] = _0x1451c6['FZXLU'](_0x1451c6['FZXLU'](_0x1451c6['TWByt'](_0x1451c6['eKhua'](_0x1451c6['eKhua'](_0x1451c6['zzVOs']('\x6d', _0x1451c6['PUMJe'](_0x52509a)), '\x3d'), _0x1451c6['kbttD'](_0x57de99, _0x4b00b1)), '\x7c'), _0x4b00b1), _0x1451c6['GBiTC']);
再分解
由此可知
_0x1451c6['kbttD'](_0x57de99, _0x4b00b1) + "|" + _0x4b00b1 '6c0a673aa5ac9a0d6d06d93c80e399dc|1685066745000'
====>
可改写成
_0x1f5c0f['uHywV'] = function(_0x167a6d, _0x403944) { return _0x167a6d < _0x403944; } ;
后面就是逐步扣代码
注意
1.. 'removeCookie': function() {return 'dev';}, 2. this['husxWe'] = function() {return 'newState';}
var window = global;
浏览器环境检测 需要定义一个navigator
可见这个是浏览器指纹
有两种解决方案
history 未被定义 console.log 被重写
等到最后打印的收会报错
这里也有两种解决方案
在最开始的时候定义console.log 把console.log 赋值给另一个值
result = console.log;
后面就是缺啥补啥 其实非常麻烦。
然后补完之后运行我们的代码
成功生成m的值,然后我们丢到python中运行
可以成功运行