JS信息收集
概念
在日常渗透测试中,从JavaScript(JS)文件中提取信息是一项关键的步骤,以往有些案例就是通过JS文件中发现的敏感信息从而拿下重要的系统。在JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取部分源代码逻辑。从而获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用大部分属于白盒测试(默认有大量源码参考),一般会在JS中寻找更多的URL地址,在JS代码逻辑(加密算法,APIkey配置,验证逻辑等)进行后期安全测试。
方法
- 接口URL提取
- 后端地址提取
- 敏感信息提取
- 配置信息提取
- 其他信息提取(环境,注释,用途等)
JS安全问题
- 源码泄漏,代码审计,JS逆向分析
- 未授权访问 -> JS里面分析更多的URL访问确定接口路径
- 敏感Key泄漏 -> JS文件中配置接口信息(云应用,短信,邮件,数据库等)
- API接口安全 -> 代码中加密提交参数传递,更多的URL路径
流行的JS框架
- Vue
- NodeJS
- jQuery
- Angular等
判定JS开发应用
- 插件wappalyzer
- 源程序代码简短
- 引入多个js文件
- 一般有/static/js/app.js等顺序的js文件
- 一般cookie中有connect.sid
获取更多的JS文件
- 手工-浏览器搜索
- 半自动-Burpsuite插件
- 工具化-各类提取&FUZZ项目
快速获取价值信息
F12调试搜索已加载的js文件
关键词:
src=
path=
method:"get"
http.get("
method:"post"
http.post("
$.ajax
http://service.httppost
http://service.httpget
项目插件工具:
| 类型 | 工具/插件名称 | 项目地址 | 功能简介 |
|---|---|---|---|
| 独立工具/命令行 | ffuf | https://github.com/ffuf/ffuf | 用 Go 编写的快速 Web 模糊测试程序。 |
| 独立工具/命令行 | JSFinder | https://github.com/Threezh1/JSFinder | 一款用作快速在网站的 JS 文件中提取 URL、子域名的工具。 |
| 独立工具/命令行 | URLFinder | https://github.com/pingc0y/URLFinder | 一款快速、全面、易用的页面信息提取工具,用于分析页面中的 JS 与 URL,查找隐藏在其中的敏感信息或未授权 API 接口。 |
| 独立工具/命令行 | Packer-Fuzzer | https://github.com/rtcatc/Packer-Fuzzer | 针对 Webpack 等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具。 |
| 独立工具/命令行 | LinkFinder | https://github.com/GerbenJavado/LinkFinder | 功能类似于 JSFinder,但 JSFinder 好久没更新了。 |
| 独立工具/命令行 | jjjjjjjjjjjjjs | https://github.com/ttstormxx/jjjjjjjjjjjjjs | 针对 Webpack 站点,爬取 JS 文件并分析获取接口列表。自动结合指纹识别和 fuzz 获取正确 API 根,可指定后端接口地址。根据有效 API 根组合爬取到的接口进行自动化请求,发现未授权/敏感信息泄露,回显 API 响应,定位敏感信息/文件/接口。支持批量模式及需认证接口自动尝试 bypass。 |
| Burp Suite 插件 | HaE | https://github.com/gh0stkey/HaE | 一款网络安全领域下的框架式项目,采用乐高积木式模块化设计理念,融入 AI 大模型辅助技术,实现对 HTTP 消息(包含 WebSocket)精细化的标记和提取。 |
| Burp Suite 插件 | BurpAPIFinder | https://github.com/shuanx/BurpAPIFinder | 攻防演练中用于发现隐匿在已访问接口、HTML、JS 文件中的未授权/敏感信息/越权: 1. 发现未授权/越权获取账号密码、私钥、凭证 2. 发现枚举用户信息、密码修改、用户创建接口 3. 发现登陆后台网址 4. 发现 HTML/JS 中泄漏的账号密码或云主机 Access Key 和 SecretKey 5. 自动提取 JS/HTML 中路径进行访问,支持自定义父路径访问。 |
| Burp Suite 插件 | Unexpected_information | https://github.com/ScriptKid-Beta/Unexpected_information | 用来标记请求包中的一些敏感信息、JS 接口和一些特殊字段,防止我们疏忽了一些数据包,使用它可能会有意外的收获信息。 |
| 浏览器插件 | FindSomething | https://github.com/momosecurity/FindSomething | 用于快速在网页的 HTML 源码或 JS 代码中提取一些有趣的信息的浏览器插件,包括请求的资源、接口的 URL、请求的 IP 和域名、泄漏的证件号、手机号、邮箱等信息。 |
本节知识点&思维导图
信息收集-Web应用-JS提取分析-人工&插件*项目
信息收集-Web应用-JS提取分析-URL&配置&逻辑

