文章总结: 本文介绍开源工具TraceSurface,用于从混淆JS、懒加载chunk及登录后模块中发现隐藏API,通过CDP捕获真实请求栈帧并结合tree-sitter静态分析定位API调用点,支持登录态下主动重放以验证未授权访问风险。文章通过构造测试网站演示完整流程,验证了工具自动采集接口、识别懒加载模块内API及发现受保护接口的能力,为Web应用攻击面梳理提供有效路径。
综合评分: 82
文章分类: 渗透测试,漏洞分析,安全工具,红队,代码审计
揪出混淆js中的api
原创
MicroPest
MicroPest
MicroPest
2026年8月12日 18:15
安徽
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
有这些场景:一是混淆后的js代码中的api;二是懒加载中的chunk;三是需要登录后才能加载的页面和模块。网络抓包能看到真实请求,却很难说明它来自源码中的哪一处;静态分析能找到 API 调用点,但要反混淆以及运行时确认最终请求了哪个 URL。这个点,研究了一下。
一、TraceSurface
TraceSurface: 发现藏在前端代码里的 API,验证未授权访问风险。
TraceSurface 是一款面向渗透测试、安全评估与 API 资产盘点的开源工具。给它一个站点,它会启动真实浏览器收集前端产物与路由,从 JavaScript 中提取隐藏的 API 调用,再做去除认证信息的主动重放,帮助定位未授权访问与弱鉴权问题。
传统目录扫描覆盖不到的角落——只存在于压缩后的 JS、懒加载 chunk、登录后路由或运行时 client 配置里的接口——正是它擅长的场景。
- CDP 为每条真实 Fetch/XHR 保存发起栈帧的脚本 URL、行号和列号。
- tree-sitter 提取 API 调用点,并记录它在源码中的精确位置区间。
- 当栈帧坐标落入同一脚本的调用点区间时,两者被认定为同一处调用。
- 已确认请求成为最强证据,为其余静态候选的 baseURL 绑定与分层推导提供锚点。
下载地址:https://github.com/pis10/TraceSurface
二、实践运用
(一)、针对“一是混淆后的js代码中的api;二是懒加载中的chunk;三是需要登录后才能加载的页面和模块“三个问题,我们来设计个”构造“网站。
红框中为两项功能测试,绿框中为两项功能展示。这里用到红框中功能。
(二)、怎么用?
-
安装好TraceSurface
uv tool install https://github.com/pis10/TraceSurface/releases/download/v1.0.0/tracesurface-1.0.0-py3-none-any.whl
-
部署好测试网站,如上图,localhost:22001
-
用TraceSurface登录网页
-
tracesurface login http://localhost:22001
输入账号/密码进入页面,这里按回车保存登录状态到auth.json中
b. 触发js api,url为http://localhost:22001/api-demo
tracesurface scan http://localhost:22001/api-demo
加载起来查看下
404主要是页面中的api是”造“出来的,不是真实的,Response失败状态。
c. 触发 懒加载模块,url为http://localhost:22001/lazy-demo
三、总结
通过实际例子,我们利用 TraceSurface 对构造站点 http://localhost:22001 完成了一次完整的前端 API 发现:先用 tracesurface login 登录获取合法会话,再用 tracesurface scan /api-demo 启动采集。扫描器打开页面时,页面自动执行 api-client.js,真实发出 POST /api/v1/user/login、GET /api/v1/orders/list?page=1、DELETE /api/v1/coupons/delete/8 等 fetch / axios / XHR / jQuery 请求,这些请求包被工具在网络层一一截获;随后访问 /lazy-chunk 时,页面在运行时动态 import() 了 module-a.js、module-b.js 两个 chunk,工具也捕获到这两个按需加载的模块及其内部新发出的 /api/v1/reports/summary、/api/v1/reports/detail?id=42 等接口。由此我们直观地验证了 TraceSurface 的三条能力:自动采集页面运行时真正发出的接口、识别懒加载 chunk 内隐藏的 API、以及在已登录状态下发现受权限保护的后端接口——这正是从”界面到资产”梳理 Web 应用攻击面的有效路径。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MicroPest MicroPest
MicroPest《揪出混淆js中的api》