• JS逆向实战14——猿人学第二题动态cookie


    声明

    本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

    目标网站

    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;
    }
    ;

    后面就是逐步扣代码
    注意

    1. 扣的时候一定要有耐心
    2. 注意有坑,正则校验 直接搜索 new Regex


      这是文中的两处正则格式化校验 修改成如下
    1.. 'removeCookie': function() {return 'dev';},
    2. this['husxWe'] = function() {return 'newState';}
    1. node 环境定义
    var window = global;
    1. 浏览器环境检测 需要定义一个navigator



      可见这个是浏览器指纹
      有两种解决方案

      1. 直接把这个地方替换成 ''

        因为浏览器执行出来的也是空
      2. 重新伪装navigator 补环境
    2. history 未被定义 console.log 被重写
      等到最后打印的收会报错

      这里也有两种解决方案

    3. 在最开始的时候定义console.log 把console.log 赋值给另一个值

    result = console.log;
    1. 用console.warn,console.debug (总有一个没被改写)

    完成

    后面就是缺啥补啥 其实非常麻烦。
    然后补完之后运行我们的代码

    成功生成m的值,然后我们丢到python中运行

    可以成功运行

  • 相关阅读:
    智能票据系统:颠覆性创新,开启新时代
    自动阅卷的原理很简单的,用python来简单解释一下工作原理❤
    项目管理技术和工具T&T
    门级建模—课后习题
    Golang 的三个核心调度模块:G、M 和 P
    【kafka】消费者与分区
    Apache和Nginx实现虚拟主机的3种方式
    Java基础实现加油站圈存机系统
    支付宝电脑网站支付,异步通知
    尚医通_第10章_后台医院管理模块
  • 原文地址:https://www.cnblogs.com/zichliang/p/17433941.html