js_reverse/大麦网
2023-05-08 16:55:16 +08:00
..
img 大麦网 2023-05-08 16:51:33 +08:00
README.md 大麦网 2023-05-08 16:55:16 +08:00

知识点: webpack打包

凡是遇到webpack打包的js项目直接全局导出解密模块去执行通过在浏览器环境测试成功后在改写成node环境下的执行。

登陆页面

参数password2

请求登陆页面

请求

发现password2参数加密

请求

全局搜索password2,找到加密点,不难发现password2是通过函数e = this.rsaPassword(this.passwordNode.value())得到

请求

进入函数调试发现类似RSA加密

请求

这公钥没有做base64不能确定是否存在魔改的情况

请求

先不管他直接导出模块执行。把index.js全部复制到浏览器源代码中执行头部加上var getToken;

请求

尾部加上getToken = __webpack_module_cache__

请求

在补全window全局变量参数

window.PAGE_START_LOAD_TIME = new Date().getTime();
window.LOGIN_UMID_LOAD = true;
window.viewConfig = {....},
window.viewData = {.....};
window._lang = {.....};

控制台测试

new getToken[1641].exports.default((0)).rsaPassword('123456')

请求

能成功打印出加密后的值。

订单确认页面

存在sign加密参数

请求

断点定位加密参数位置

请求

这里直接告诉你答案就是原生md5加密

请求