【JavaScript 逆向】手撕某红书X-s,X-T 感受纯算法的压迫

【JavaScript 逆向】手撕某红书X-s,X-T 感受纯算法的压迫

一、声明

本案例中所有内容仅供个人学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

二、案例分析

抓包分析

image-20240301160709887

image-20240301160558480

列表页往下刷新 可以看到这个数据是这个包请求拿到的,主要是这个X-S参数,

经验丰富的老爬虫er 肯定一眼睛可看出端倪 Base64编码的 { 就是 ey 开头 这个很可能就是一个json格式的数据

所以我们复制一下 去解码:

image-20240301161619405

是不是一眼明了,就是这个 payload

hook JSON

JavaScript常用的Hook脚本

hook json 里面的payload 在控制台注入

my_stringify = JSON.stringify;
JSON.stringify = function (val) {
	if(val && val["payload"]){
		debugger
	}
    return  my_stringify(val);
};

image-20240301162646966

成功断住,现在我们就可以去跟堆栈 找参数是怎么生成的了。

跟栈:

过程省略。。。。

image-20240301163122039

上面这个位置,是三目表达式 ① ? 前面是true 走:前面的 ② 为false 走:后面的

window._webmsxyw(c,i) 就是我们的加密函数,这里也可以选择补环境 或者 RPC的方式

补环境还是比较推荐的 也可以通过插桩的日志查看检测的那些环境 挂上proxy补起

进入函数,发现指令集 可以复制到notepad里面方便观察。

image-20240301163744664

image-20240301163931251

插桩

跟到这个位置

image-20240301170009877

_ace_1ae3c(_ace_8712.apply(typeof _ace_25a6._ace_936 == "undefined" ? _ace_4752e : _ace_25a6._ace_936, _ace_bdcc), _ace_be07c, _ace_be07c, 0);

console.log(_ace_8712, _ace_25a6._ace_936, _ace_bdcc );false;

我们可以进行插桩 看一下 非常恐怖的日志 十七万行

image-20240301170135749

通过浏览分析日志

md5源码js

[1732584193,-271733879,-1732584194,271733878 .......................]  MD5魔法值

里面很重要的信息 并对其进行了Base64

x1 = URL MD5
x2 = 环境检测值
x3 = cookie中a1的值
x4 = 时间戳

继续插桩 :插桩点

image-20240301172545798


function(p0, p1, p2, p3, p4, p5, p6) {
	let __string11 = _ace_34d1(p0, p1) + _ace_34d1(p2, p3)
	if (typeof (__string11) == 'string' && __string11.indexOf(';x4=170')!=-1){
			window.__string11 += __string11+'\r\n';
	}
	_ace_1ae3c(__string11, _ace_be07c, _ace_be07c, 0);
	return ++p4;
}

image-20240301172654184

console.log(_ace_7e97a);

寻找有用信息

最主要的是32位的key

desjs源码)

整体流程: url+{参数}进行MD5————> 将x1+x2+x3+x4 进行b64 ———> encryt 加密出一串密文 ————>就是payload的参数

三、结果展示

image-20240301174435448

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值