JS逆向 - 阉割版五秒盾(国内版)

JS逆向:阉割版五秒盾(国内版)解析

概要

提示:仅供学习,不得用做商业交易,如有侵权请及时联系

逆向:JS逆向 - 阉割版五秒盾(国内版)

URL: aHR0cHM6Ly9haC5jaGluYW1pbmUtc2FmZXR5Lmdvdi5jbi9mdXd1L2hkX3pjamQv

在这里插入图片描述

整体架构流程

提示:分析流程

首先观察抓包情况

在这里插入图片描述

从上面可以看到:

  1. hd_zcjd接口:返回一个HTML,响应状态412
    在这里插入图片描述

  2. 1eeb27c_268ab095d.js接口:返回一个对象xyjgnaksf
    在这里插入图片描述

  3. ctct_bundle.js接口:返回js代码

  4. hd_zcjd接口:返回正确内容,响应状态码为200,观察cookie中发现生成5个cookie值
    在这里插入图片描述

技术名词解释

提示:F12检测

1、首先将ctct_bundle.js的内容还原一下(还原网址):https://webcrack.netlify.app/

2、本地将ctct_bundle.js替换上次,通过脚本断点,一个一个文件的加载,到最后会发现会出现

在这里插入图片描述
在这里插入图片描述

3、所以,我们直接搜索Devtools的关键字,会发现很多个,我们找到一个刚开始的地方

在这里插入图片描述

4、继续往下看,我们会发现很多检测的地方,比如:toString、console、performance、debugger、setTimeout等

在这里插入图片描述

5、继续分析我们可以看到,他确实是通过launch方法去启动的

在这里插入图片描述

所以咱就好解决了,直接将执行launch的方法直接给注释掉就可以了

技术细节

提示:开始分析cookie值

1、我们观察前面二次请求:第一次是返回412,并返回俩个js,第二次是js返回一个xyjgnaksf对象,这个很重要,可能后面会用到,那么这几个cookie值肯定是在第三个请求的js里面生成的

var xyjgnaksf = {
    "af8_dc12a_a162676": 0,
    "a6607e9a31_5d01d7": "Ri8aec619f339x^*xO53",
    "e_qlhhxu7nxpbcq": 1,
    "a271f0f91e16b_f4d": 1,
    "C_910fddefa_2e67d7": "6pqnuyiX#@l89x^&xOG2",
    "xpiq_7tw_kmeuzv63": 0,
    "a0e4dfb1c_f90554": 2048,
    "a3_b210c1396f9871": 1,
    "d92130a3ea_557685": "mA#22TiX#*x907r$xOh1",
    "pqol86xnbz1hxz_w": 1,
    "a0e4dfb1c_f90553": 16384,
    "af8_dc12a_a162678": "1752456665",
    "yxao91ip_xa7qmpw": "ah.chinamine-safety.gov.cn",
    "uyjgx63xoizzxzql": 1,
    "af8_dc12a_a162677": "b1909abc",
    "e09b_cc0baf4c431": "3x*2b1909abc9x#*xc53"
};

2、直接在ctct_bundle.js中搜索:document.cookie,将所有可能断点的地方都下好debugger

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、重新刷新网页加载

  1. CTCT_GLOBAL_TIME_DELTA:可写死,0
    在这里插入图片描述
CTCT_GLOBAL_TIME_DELTA : 当前时间戳(10) - xyjgnaksf.af8_dc12a_a162678
  1. CT_6eadf26c
    在这里插入图片描述

加密内容:‘1752456817{“md”:0,“mv”:0,“mp”:0,“kc”:0}17’,分成三部分:时间戳+{“md”:0,“mv”:0,“mp”:0,“kc”:0}+时间戳后面俩位

密钥:判断_0x48c9f7:query取xyjgnaksf.a6607e9a31_5d01d7,env取xyjgnaksf.e09b_cc0baf4c431

加密AES(注意跟栈进去会发现):key=iv = xyjgnaksf.属性.substring(4)

var _0x33cd42 = function () {
        var _0x31363e = _0x67cb40();
        var _0x3ec4fb = document.cookie.match(/(?:^|;)\s*CTCT_GLOBAL_TIME_DELTA=([^;]+)/);
        if (_0x3ec4fb) {
          var _0x33ace6 = _0x31363e - _0x3ec4fb[1];
          return `${_0x33ace6}`;
        }
        return "";
      }();

上面加密的时间戳:当前时间戳(10位) - CTCT_GLOBAL_TIME_DELTA

  1. CT_f7ba0eb8
    在这里插入图片描述

指纹通过md加密,可写死

  1. CT_e6tzab00
    在这里插入图片描述

加密内容:‘1752457575envCTCT75’,分成三部分:时间戳+envCTC+时间戳后面俩位

密钥:判断_0x48c9f7:query取xyjgnaksf.a6607e9a31_5d01d7,env取xyjgnaksf.e09b_cc0baf4c431

加密AES(注意跟栈进去会发现):key=iv = xyjgnaksf.属性.substring(4)

  1. CT_rqu7ab01
    在这里插入图片描述

实现过程与上面一致

小结

在这里插入图片描述

提示:学习交流主页,星球持续更新中:链接https://t.zsxq.com/AJTw2(+星球主页+v)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值