Spix0r/robofinder

GitHub: Spix0r/robofinder

Robofinder 通过挖掘 Archive.org 上目标网站的历史 robots.txt 快照,帮助安全研究人员发现已被删除但可能仍存活的隐藏路径与端点。

Stars: 253 | Forks: 23

Robofinder

PyPI Downloads Python 3.8+ License Stars


 _____       _            __ _           _           

|  __ \     | |          / _(_)         | |          

| |__) |___ | |__   ___ | |_ _ _ __   __| | ___ _ __ 

|  _  // _ \| '_ \ / _ \|  _| | '_ \ / _` |/ _ \ '__|

| | \ \ (_) | |_) | (_) | | | | | | | (_| |  __/ |   

|_|  \_\___/|_.__/ \___/|_| |_|_| |_|\__,_|\___|_|   

                                                     

通过挖掘 Wayback Machine 上的每一个历史 robots.txt 快照,发现隐藏的 endpoint。

## 为什么选择 Robofinder? 网站通常会清除 `robots.txt` 中的敏感路径——但 **Wayback Machine 保存了所有被爬取过的版本**。 Robofinder 查询 Archive.org 的 CDX API 来拉取目标的所有历史 `robots.txt` 快照,对每个 `Allow`、`Disallow` 和 `Sitemap` 指令进行去重,并打印完整列表。那些已在生产环境中被悄悄移除的路径可能依然存活且可访问。 **专为:** bug bounty 侦测 · OSINT · 攻击面映射 · 遗忘 endpoint 发现而构建 ## 安装 ``` pip install robofinder ```
从源码安装 ``` git clone https://github.com/Spix0r/robofinder cd robofinder pip install . ```
## 快速开始 ``` # 单一目标 robofinder -u https://example.com # 待探测的完整 URLs robofinder -u https://example.com -c # 直接 pipe 到 httpx 或 nuclei robofinder -u domains.txt -c -s | httpx -silent -mc 200 robofinder -u https://example.com -c -s | nuclei -t exposures/ ``` ## 用法 ``` robofinder -u URL [options] ``` | 参数 | 完整形式 | 默认值 | 描述 | |------|-----------|---------|-------------| | `-u` | `--url` | — | 目标 URL 或每行包含一个 URL 的文件 | | `-o` | `--output` | — | 输出到终端(无值)或保存到文件(有值) | | `-f` | `--format` | `txt` | 输出格式:`txt`、`json` 或 `both` | | `-c` | | — | 在每个路径前加上目标 URL(完整 URL) | | `-p` | | — | 从历史路径中提取 URL 参数 | | `-t` | `--threads` | `1` | 抓取线程数 | | `-r` | `--rate-limit` | `2.0` | 发送到 Archive.org 的最大请求数/秒 | | | `--cooldown` | `10` | 域名之间的等待秒数 | | `-s` | `--silent` | — | 隐藏 banner | | | `--debug` | — | 详细的调试输出(输出到 stderr) | ### 扫描域名列表 创建 `domains.txt`: ``` https://example.com https://target.org api.example.com ``` ``` robofinder -u domains.txt -o all_paths.txt ``` ### 结合 jq 输出 JSON ``` # 保存到文件 robofinder -u https://example.com -f json -o results # Pipe 到 jq robofinder -u https://example.com -f json | jq '.["example.com"].paths[]' # 统计每个 domain 的 paths 数量 robofinder -u domains.txt -f json | jq 'to_entries[] | "\(.key): \(.value.count) paths"' ``` ### 提取遗忘的 URL 参数 ``` robofinder -u https://example.com -p # 返回在历史 paths 中找到的 parameter 名称,例如: # id # token # redirect_url ``` ## 速率限制 Robofinder 内置了 **令牌桶速率限制器**,因此它绝不会向 Archive.org 发起猛烈请求。 - 默认:**2 req/s** —— 完全在 Archive.org 的容忍范围之内。 - 遇到 HTTP **429** 时:进行指数退避并自动重试。 - 遇到超时/连接错误时:进行退避重试(最多尝试 7 次)。 - 使用 `-r` 覆盖:使用 `-r 0.5` 以保持保守,或在快速网络环境下使用 `-r 5`。 ``` # Conservative 模式 robofinder -u https://example.com -r 1 --cooldown 30 ``` ## 更新日志 参见 [CHANGELOG.md](CHANGELOG.md)。 ## 许可证 [MIT](LICENSE) © [Spix0r](https://github.com/Spix0r)
标签:ESC4, OSINT, Python, Web安全, 实时处理, 攻击面测绘, 无后门, 蓝队分析, 逆向工具