mouteee/jsrip
GitHub: mouteee/jsrip
基于 Chromium 的 JavaScript 安全分析工具,自动化爬取并分析前端代码以发现泄露的凭证、API 密钥和隐藏端点。
Stars: 16 | Forks: 2
# jsrip
面向进攻性 Web 的 JavaScript 提取器。爬取目标,提取其 JS,并将其分解以查找秘密、端点以及开发者忘记隐藏的内容。
专为厌倦了手动执行此操作的漏洞赏金猎人和渗透测试人员构建。
## 功能介绍
- **提取秘密** -- API 密钥、令牌、密码、凭证、硬编码的连接字符串、环境回退值,以及覆盖所有主要服务的 1600+ 种模式
- **映射端点** -- API 路由、内部路径、隐藏 URL、GraphQL 端点、fetch/XHR 目标
- **智能分析** -- Shannon 熵评分、变量赋值检测、配置对象提取、环境泄漏检测、DOM 存储分析
- **多域名爬取** -- 提供子域名列表,它会将它们全部纳入范围
- **导出整洁报告** -- 交互式 HTML 仪表板、JSON、Markdown、CSV
## 快速开始
```
git clone https://github.com/mouteee/jsrip.git
cd jsrip
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
playwright install chromium
python3 jsrip.py -u https://target.com
```
## 用法
```
# 单一目标
python3 jsrip.py -u https://target.com
# 目标列表(每行一个,支持多个 domains)
python3 jsrip.py -l targets.txt
# HTML + JSON 报告
python3 jsrip.py -u https://target.com -f html json
# 查看运行过程
python3 jsrip.py -u https://target.com --show-browser -v
# 自定义 output dir
python3 jsrip.py -u https://target.com -o ./loot
```
## 选项
| 标志 | 作用 | 默认值 |
|------|-------------|---------|
| `-u URL` | 单个目标 | -- |
| `-l FILE` | 目标列表 | -- |
| `-o DIR` | 输出目录 | 自动加时间戳 |
| `-f FORMAT` | 报告格式:`html` `json` `md` `csv` | `json` |
| `--depth N` | 爬取深度 | 2 |
| `--max-pages N` | 页面限制 | 500 |
| `--include-external` | 在结果中包含范围外的 URL | off |
| `--show-browser` | 可见的浏览器窗口 | headless |
| `--headers FILE` | 自定义 headers (JSON) | -- |
| `--cookies FILE` | Session cookies (JSON) | -- |
| `--user-agent STR` | 自定义 UA 字符串 | jsrip/1.0 |
| `-v` | 详细输出 | off |
## 输出
```
jsrip_output_20260402_163015/
├── javascript/ # All downloaded JS (beautified)
├── sourcemaps/ # Downloaded .map files
├── reports/
│ ├── report.html # Interactive dashboard
│ ├── report.json # Structured data
│ ├── secrets.csv
│ └── endpoints.csv
└── jsrip.log
```
## 工作原理
### 爬取
Playwright 驱动一个真实的 Chromium 实例。它跟踪链接,拦截网络响应,提取内联脚本,发现 webpack 块,下载 source maps,解析站点地图,打开 iframe,点击按钮和标签以触发延迟加载的内容。所有 JS 都会根据内容哈希进行美化和去重。
### 分析
每个 JS 文件都会经过三层处理:
**模式匹配** -- 1670+ 个正则表达式模式,涵盖 AWS、GCP、Azure、Stripe、OpenAI、Anthropic、Supabase、Vercel、Cloudflare、Clerk 以及数百个其他服务。每个匹配项都会进行 Shannon 熵评分并分类到置信度层级。
**智能检测** -- 除了正则表达式,jsrip 还会读取代码结构:
- 具有敏感名称的变量赋值 (`const apiKey = "..."`)
- 具有凭证属性的配置对象 (`{secretKey: "..."}`)
- 环境变量回退值 (`process.env.DB_URL || "postgres://..."`)
- DOM 中存储的认证令牌 (`localStorage.setItem("token", ...)`)
- Fetch/XHR/Axios URL 提取
**误报过滤** -- 多层过滤可在噪音进入报告之前将其消除:
- 占位符检测(YOUR_API_KEY, CHANGEME, 模板变量)
- camelCase JS 标识符识别(过滤函数/类名)
- URL 路径过滤(并非每个包含 "password" 的字符串都是密码)
- 熵阈值(低熵匹配会被降级或丢弃)
- 已知安全值白名单、CSS 十六进制颜色、版本字符串、base64 噪音
### 置信度级别
| 级别 | 含义 |
|-------|---------|
| **High** | 强模式匹配 + 高熵。可能是真的。 |
| **Medium** | 模式匹配,熵值尚可。值得检查。 |
| **Low** | 弱匹配或低熵。可能是噪音。 |
| **Info** | 信息性 -- 环境引用、存储键。上下文,而非凭证。 |
## 认证
对于位于登录后的目标,传递 session cookies:
```
[
{
"name": "session",
"value": "your-session-token",
"domain": "target.com"
}
]
```
```
python3 jsrip.py -u https://target.com --cookies cookies.json
```
自定义 headers 的工作方式相同:
```
{
"Authorization": "Bearer your-token"
}
```
```
python3 jsrip.py -u https://target.com --headers headers.json
```
## 完整运行
```
python3 jsrip.py \
-l targets.txt \
-o ./loot \
-f html json \
--depth 3 \
--max-pages 1000 \
--include-external \
--cookies session.json \
--headers auth.json \
-v
```
## 故障排除
**Playwright 未安装**
```
playwright install chromium
```
**找到的 JS 文件很少** -- 目标可能在 Cloudflare 后面或需要认证。尝试 `--show-browser` 查看发生了什么,添加 `--cookies`,或增加 `--depth`。
**浏览器无法启动** -- 确保你在 venv 中:
```
source venv/bin/activate
```
## 系统要求
- Python 3.9+
- Chromium (通过 Playwright)
```
playwright>=1.40.0
aiohttp>=3.9.0
jsbeautifier>=1.14.0
colorama>=0.4.6
```
## 法律声明
仅在你拥有明确授权的系统上使用 jsrip。作者不对滥用行为负责。
## 致谢
秘密模式改编自 @mazen160 的 [Secrets Patterns DB](https://github.com/mazen160/secrets-patterns-db)。
## 链接
- [报告 Bug](https://github.com/mouteee/jsrip/issues)
- [讨论](https://github.com/mouteee/jsrip/discussions)
如果它帮你找到了好东西,请给仓库一个 Star。
标签:API 安全, BeEF, Bug Bounty, C2日志可视化, DeepSeek, JavaScript 分析, Playwright, Python, StruQ, Web 安全, 可自定义解析器, 实时处理, 密码管理, 指纹识别, 数据泄露, 无后门, 熵值分析, 爬虫, 特征检测, 硬编码密钥, 秘密检测, 端点映射, 结构化查询, 网络安全, 自动化安全, 逆向工具, 防御框架, 隐私保护