17.JavaScript 自动化侦察工具
1. 项目介绍
JSFScan 是一款专为 Bug Bounty 和 渗透测试 设计的自动化工具,专注于对目标网站的 JavaScript 文件 进行深度侦察。其通过多维度分析 JS 文件,快速提取敏感信息、潜在漏洞点和攻击面,适用于红队渗透、漏洞挖掘及资产测绘等场景。
核心功能亮点:
- JS 文件收集:从目标子域名列表自动爬取所有关联的 JS 文件链接(支持 Hakrawler、Gau 等工具集成)
- 端点提取:解析 JS 文件中的 API 接口、隐藏路径及 URL 端点,为漏洞探测提供关键数据。
- 敏感信息发现:检测 JS 中的硬编码密钥(如 AWS Access Key、API Token)、调试接口等。
- XSS 探测:识别潜在的 DOM XSS 漏洞点,并提取变量名辅助手动验证。
- 数据整合:生成结构化报告(HTML/文本)、自定义词表,支持本地存储 JS 文件供后续分析。
适用场景:
- 红队渗透:快速定位 Web 应用的未授权接口或敏感数据泄露点。
- 漏洞挖掘:通过 JS 文件中的隐藏路径发现 SQL 注入、SSRF 等漏洞。
- 资产测绘:梳理企业 Web 应用的 JavaScript 依赖库及第三方服务。
2. 安装教程
2.1. 环境要求
- 操作系统:Linux/macOS(推荐 Kali Linux 或 Ubuntu)。
- 依赖工具:Go 1.16+、Docker(可选)、Python 3.6+。
2.2. 安装方法
方法一:本地安装(推荐)
git clone https://github.com/KathanP19/JSFScan.sh
cd JSFScan.sh
sudo chmod +x install.sh
./install.sh # 自动安装 Hakrawler、Gau、SecretFinder 等依赖
注意:若遇到权限问题,确保已正确配置 Go 环境变量
方法二:Docker 容器
docker build -t jsfscan .
docker run -it jsfscan /bin/bash # 进入容器环境
优势:避免依赖冲突,适合快速部署
3. 基础使用教程
3.1. 准备目标列表
- 创建
targets.txt
文件,每行一个子域名(需包含协议头):
https://example.com
http://test.example.com
3.2. 常用命令示例
- 收集 JS 文件链接:
./JSFScan.sh -l -i targets.txt -o output
-
-l
:启用 JS 链接收集模块。-o
:指定输出目录。
- 提取端点与敏感信息:
./JSFScan.sh -e -s -i targets.txt
-
-e
:提取 JS 中的 URL 端点。-s
:扫描硬编码密钥(如 AWS Key、数据库凭证)。
- 生成 HTML 报告:
./JSFScan.sh --all -i targets.txt -r report.html
-
--all
:启用全部功能模块。-r
:生成可视化报告
4. 进阶使用教程
4.1. 自定义 Cookie 与请求头
- 编辑脚本文件,修改 Hakrawler 的请求参数(如添加认证 Cookie):
# 修改 JSFScan.sh 第 23 行
hakrawler -js -cookie "session=123abc" -depth 3
4.2. 生成自定义词表
- 从 JS 文件中提取高频词汇,用于目录爆破或密码猜测:
./JSFScan.sh -w -i targets.txt -o custom_wordlist.txt
4.3. 变量名提取与 XSS 检测
- 提取 JS 变量名辅助 XSS 漏洞挖掘:
./JSFScan.sh -v -d -i targets.txt
-
-v
:提取变量名(如userInput
、redirectUrl
)。-d
:扫描潜在的 DOM XSS 漏洞点
4.4. 联动其他工具
- 将提取的端点导入 Burp Suite 或 Nuclei 进行深度测试:
cat output/endpoints.txt | nuclei -t ~/nuclei-templates/
5. 官方下载地址
- GitHub 仓库:https://github.com/KathanP19/JSFScan.sh
6. 注意事项
- 合法授权:仅用于授权测试,禁止非法入侵。
- 性能优化:
-
- 调整线程数(默认 20)避免触发 WAF:
-t 10
。 - 使用代理池分散请求:
-proxy http://127.0.0.1:8080
。
- 调整线程数(默认 20)避免触发 WAF:
- 数据更新:定期拉取最新版以获取增强的规则库(如密钥正则表达式)
通过 JSFScan,用户可高效完成从 JS 文件分析到漏洞验证的全流程,建议结合 ZAP 或 Xray 进行漏洞验证,形成完整的攻击链。