brennoRD/endpoint-watch
GitHub: brennoRD/endpoint-watch
一款轻量的 JS 资产差异监控工具,通过快照对比自动发现目标站点新出现的 API 端点和泄露的密钥,并支持通过 webhook 实时通知。
Stars: 0 | Forks: 0
# endpoint-watch
监控目标的 JavaScript 资产,并告诉你其中何时出现**新端点**或**新密钥**。
对于希望运行一个小工具,并在目标部署新代码时通过 Telegram/Slack/Discord 通知自己的漏洞赏金猎人来说,这非常有用。该工具可在 cron 上运行。
```
$ endpoint-watch https://example.com
[+] https://example.com: found 7 JS file(s)
[changed] https://example.com/static/app.abc123.js
+ endpoint: /api/v2/users/export
+ endpoint: /internal/debug/whoami
! secret (Google API Key): AIzaSyB…
```
## 安装
```
git clone https://github.com/brennoRD/endpoint-watch
cd endpoint-watch
pip install -r requirements.txt
```
## 用法
```
python endpoint_watch.py https://target.tld
python endpoint_watch.py https://target.tld --webhook https://hooks.example/abc
python endpoint_watch.py https://target.tld --json --quiet
```
快照存储在 `~/.endpoint-watch/snapshots.db` (SQLite) 中。对目标的首次运行只会记录基线——从第二次运行开始报告差异。
### 在 cron 上运行
```
*/30 * * * * /usr/bin/python3 /opt/endpoint-watch/endpoint_watch.py https://target.tld --webhook https://hooks.example/abc
```
## 检测内容
- **新端点** — 看起来像路径 (`/api/...`) 或完整 URL (`https://...`) 的字符串,且在同一个 JS 文件的上一次快照中不存在。
- **新密钥** — 使用尽力的正则表达式匹配常见 token 格式:
- AWS Access Key (`AKIA…`)
- Google API Key (`AIza…`)
- GitHub Token (`ghp_…`)
- OpenAI 风格的密钥 (`sk-…`)
- Slack Token (`xox[baprs]-…`)
- JWT (`eyJ…`)
误报可能会发生——请将输出视为线索,而非最终发现。
## 不做的事情
这是一个有意设计的小型工具。它**不会**自动探测新端点、进行风险评分、去重、多源关联或噪音过滤。如果你需要这些功能,请在 JSON 输出的基础上自行构建,或者将其接入更大的 pipeline 中。
## 许可证
MIT。
标签:API密钥检测, Bug Bounty, Discord通知, Python, Slack通知, Telegram通知, 可自定义解析器, 实时处理, 差异对比, 开源安全工具, 无后门, 白帽黑客, 网络安全, 网络钩子, 自动化监控, 资产测绘, 输入验证, 逆向工具, 逆向工程平台, 隐私保护