🔍 引言
去哪儿旅行平台使用了复杂的加密手段。本篇将重点解析__m__请求头键值加密的实现,关于调试过程和逆向方法欢迎指正。
🔍 JS逆向步骤详解
1️⃣ 抓包关键参数
首先,我们使用抓包工具捕获目标网站的网络请求,找出加密的关键参数:
请求头:键值同时加密,pre参数加密
请求参数加密:m Bella
通过分析,我们发现__m__参数是经过加密的,接下来需要定位加密代码。
2️⃣ 断点调试
我们在浏览器的开发者工具中进行断点调试:
找到__m__参数加密位置:先定位到__m__参数的生成位置,跟踪函数调用,找到加密函数encrypt。
encrypt又调用了encryptFunction加密函数。
分析加密算法:通过跟踪加密函数的调用,发现使用了SHA1和MD5加密算法。
请求头加密位置:搜索headers,观察本地变量的值变化,找到请求头键值的赋值位置。
跟踪函数调用,找到实现为getToken方法。
3️⃣ 扣JS代码
将关键的加密代码扣取下来,根据其逻辑进行逆向分析。
4️⃣ Python调用
使用execjs库调用JS代码,实现参数的逆向解密,并打印结果。