概要
提示:仅供学习,不得用做商业交易,如有侵权请及时联系
逆向:JS逆向 - 阉割版五秒盾(国内版)
URL: aHR0cHM6Ly9haC5jaGluYW1pbmUtc2FmZXR5Lmdvdi5jbi9mdXd1L2hkX3pjamQv

整体架构流程
提示:分析流程
首先观察抓包情况

从上面可以看到:
-
hd_zcjd接口:返回一个HTML,响应状态412

-
1eeb27c_268ab095d.js接口:返回一个对象xyjgnaksf

-
ctct_bundle.js接口:返回js代码
-
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、重新刷新网页加载
- CTCT_GLOBAL_TIME_DELTA:可写死,0

CTCT_GLOBAL_TIME_DELTA : 当前时间戳(10位) - xyjgnaksf.af8_dc12a_a162678
- 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
- CT_f7ba0eb8

指纹通过md加密,可写死
- CT_e6tzab00

加密内容:‘1752457575envCTCT75’,分成三部分:时间戳+envCTC+时间戳后面俩位
密钥:判断_0x48c9f7:query取xyjgnaksf.a6607e9a31_5d01d7,env取xyjgnaksf.e09b_cc0baf4c431
加密AES(注意跟栈进去会发现):key=iv = xyjgnaksf.属性.substring(4)
- CT_rqu7ab01

实现过程与上面一致
小结

提示:学习交流主页,星球持续更新中:链接https://t.zsxq.com/AJTw2(+星球主页+v)
JS逆向:阉割版五秒盾(国内版)解析

5924

被折叠的 条评论
为什么被折叠?



