2023-02-23 06:29:03
易久批案例的JS逆向核心是破解其接口加密参数(如x-sign、UUID、x-sign-nonce)的生成逻辑,通过抓包定位、代码分析、环境补全等步骤还原加密过程。
一、案例背景与目标易久批接口通过动态加密参数(如x-sign)验证请求合法性,这些参数通常存在于请求头中。逆向目标是通过分析JS代码,复现参数生成逻辑,从而绕过服务端校验。例如,x-sign可能依赖时间戳、随机数和哈希算法(如MD5)动态生成,需通过逆向工程还原其计算规则。
二、逆向分析步骤定位加密参数使用抓包工具(如浏览器开发者工具的Network选项卡或curl命令)捕获请求,确认需逆向的字段。例如,易久批请求头中的UUID、x-sign、x-sign-nonce均为加密字段,需通过分析其生成逻辑实现模拟。
定位加密位置在浏览器开发者工具的Sources选项卡中搜索关键词(如sign、x-sign),找到包含加密逻辑的JS文件。例如,通过全局搜索定位到生成x-sign的代码段,可能涉及函数调用或变量拼接。
分析加密逻辑加密算法可能包含以下元素:
动态参数:如时间戳(Date.now())、随机数(Math.random())。
哈希算法:如MD5对拼接字符串进行加密。
固定密钥:部分案例中存在硬编码的密钥或盐值。例如,某案例中sign参数由随机数、时间戳和固定字符串拼接后MD5加密生成,易久批的x-sign可能采用类似逻辑。
补环境与执行若加密代码依赖浏览器环境(如window对象),需通过工具补全环境。例如:
使用execjs(Python库)调用JS代码,需定义缺失的浏览器对象(如_0x5d9ea9)。
借助webEnv或SpiderTools插件模拟DOM环境,确保代码正常运行。
抓包:浏览器开发者工具、curl。
补环境:webEnv、SpiderTools。
JS执行:execjs(Python)。
易久批的x-sign生成逻辑可能涉及多层加密或动态参数,需结合抓包数据与JS代码逐步验证。例如,时间戳和随机数的组合可能增加参数动态性,需通过调试工具(如Chrome DevTools的断点功能)跟踪变量变化,最终还原完整的加密流程。