声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
https://match.yuanrenxue.cn/match/2
网站分析
首先已经告诉了我们这个网站是动态cookie,所以我们首先打开devtools看看哪个cookie,然后我们用代码运行下
然后发现cookie的有效期很短,我们搜索有没有set_cookie 发现并没有
然后我们用fiddler 抓包看看
我们搜索这个cookie的值
有时候可能hook不到值,没关系 点击下一页去hook 不要刷新去hook
发现是从第二请求开始的,所以cookie 大概率是第一个请求哪里生成的 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'
- _0x1451c6['kbttD'](_0x57de99, _0x4b00b1) : cookie
- _0x4b00b1: 时间戳
扣代码
====>
可改写成
_0x1f5c0f['uHywV'] = function(_0x167a6d, _0x403944) { return _0x167a6d < _0x403944; } ;
后面就是逐步扣代码
注意
- 扣的时候一定要有耐心
- 注意有坑,正则校验 直接搜索 new Regex 这是文中的两处正则格式化校验 修改成如下
1.. 'removeCookie': function() {return 'dev';}, 2. this['husxWe'] = function() {return 'newState';}
- node 环境定义
var window = global;
- 浏览器环境检测 需要定义一个navigator 可见这个是浏览器指纹 有两种解决方案
- 直接把这个地方替换成 '' 因为浏览器执行出来的也是空
- 重新伪装navigator 补环境
- history 未被定义 console.log 被重写 等到最后打印的收会报错 这里也有两种解决方案
- 在最开始的时候定义console.log 把console.log 赋值给另一个值
result = console.log;
- 用console.warn,console.debug (总有一个没被改写)
完成
后面就是缺啥补啥 其实非常麻烦。
然后补完之后运行我们的代码
成功生成m的值,然后我们丢到python中运行
可以成功运行