javascript逆向--PyExecJS模拟执行破解compress加密网站(11)
一.digikey网站分析
下面结合digikey网站的案例来分析:访问:https://www.digikey.cn/zh/products/filter/logic/buffers-drivers-receivers-transceivers/704 这个网站。通过浏览器开发工具知道,参数过滤是通过ajax的https://www.digikey.cn/products/api/v4/filters/704?s=N4IgjCBcpgbFoDGUBmBDANgZwKYBoQB7KAbRACYAWATgHZyAGEAXQIAcAXKEAZQ4CcAlgDsA5iAC+UoA get获取到的, 其中的参数s是通过加密的。
1.javascript逆向的调试分析
步骤1:添加XHR的断点,也就是ajax的地址,如下所示
步骤2:在浏览器中刷新上面的访问地址,此时会自动在下面的get下的匿名处点击,代码跳到了左边处,此时createSParam方法是关键入口。
步骤3:在createSParam处断点,按F9跳进去,代码如下所示:
createSParam(e) { const t = v.cleanDictionary(e); if (t) return (0, l.encodeUrlStateString)(t) },
步骤4:在encodeUrlStateString中,按f9跳进去,如下
t.encodeUrlStateString = e=>i.default.compressToEncodedURIComponent(JSON.stringify((e=>v(0, e))(e)));
其中 JSON.stringify((e=>v(0, e))(e))的字符串内容为:{"1":{"16":{"c":false,"o":["228986"],"pt":"String"}}} ,如下所示,o数组的值是点击规格的参数id值:
步骤5:经过分析compressToEncodedURIComponent 方法是LZString库提供的,github库地址如下: https://github.com/pieroxy/lz-string/
最终得出s的加密参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
2018-09-11 mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志