xnl-h4ck3r/waymore
GitHub: xnl-h4ck3r/waymore
waymore 是一款基于多源的历史归档 URL 抓取与响应下载工具,帮助安全研究者全面收集目标站点的历史路径和隐藏信息。
Stars: 2549 | Forks: 282

## 关于 - v8.5
**waymore** 的理念是从 Wayback Machine(以及其他来源)中找到更多链接,超过其他现有工具。
👉 **waymore** 与其他工具的最大区别在于,它还能 **下载 Wayback Machine(以及 URLScan)上 URL 的归档响应**,这样你就可以在这些响应中搜索更多链接、开发者评论、额外参数等。
👉 同时,其他工具目前并未处理来源的速率限制,常常在结果不完整时直接停止且不提示。
所有做过漏洞赏金的人几乎都使用过 @TomNomNoms 的惊人 [waybackurls](https://github.com/tomnomnom/waybackurls)。该工具从 [web.archive.org](https://web.archive.org) 获取 URL,并从 [index.commoncrawl.org](http://index.commoncrawl.org/) 的其中一个索引集合中获取额外链接(如果有的话)。
你也很可能使用过 @hacker\_ 的惊人 [gau](https://github.com/lc/gau) ,它同样可以从 Wayback 归档、Common Crawl、Alien Vault、URLScan、Virus Total 和 Intelligence X 中查找 URL。
现在 **waymore** 也可以从上述所有来源获取 URL(并且可以进一步过滤以获取你想要的内容):
- Wayback Machine(web.archive.org)
- Common Crawl(index.commoncrawl.org)
- Alien Vault OTX(otx.alienvault.com)
- URLScan(urlscan.io)
- Virus Total(virustotal.com)
- GhostArchive(ghostarchive.org)
- Intelligence X(intelx.io) - 仅限学术或付费层
👉 这是许多人容易忽视的一点,所以我再说一遍 :) … **waymore** 与其他工具的最大区别在于,它还能 **下载 Wayback Machine 上 URL 的归档响应**,这样你就可以在这些响应中搜索更多链接、开发者评论、额外参数等。
👉 **请务必阅读本页的全部信息,以充分利用此工具,尤其是在提交任何问题之前** 🤘
👉 **此工具可能非常慢,但它旨在覆盖范围,而非速度**
⚠️ **常见错误是将子域文件传入以获取整个域的所有内容。不要这样做!只需传入域名即可获取该域的所有子域。这样会快很多,也不会漏掉任何内容。**
## 安装
**注意:如果你已经有 `config.yml` 文件,它不会被覆盖。`config.yml.NEW` 文件会在同一目录下创建。如果需要新的配置文件,请删除 `config.yml` 并将 `config.yml.NEW` 重命名为 `config.yml`。**
`waymore` 支持 **Python 3.7+**(需要 Python 3.7 或更高版本以支持 async/await)。
在默认(全局)Python 环境中安装 `waymore`。
```
pip install waymore
```
或
```
pip install git+https://github.com/xnl-h4ck3r/waymore.git -v
```
你可以通过以下方式升级
```
pip install --upgrade waymore
```
### pipx
使用 [pipx](https://pypa.github.io/pipx/) 在隔离的 Python 环境中快速设置
```
pipx install git+https://github.com/xnl-h4ck3r/waymore.git
```
## 使用
| 参数 | 长参数 | 说明 |
| ------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | 目标域(或域文件)以查找链接。可以是仅域名,或带特定路径的域名。如果是仅域名以获取该域的所有内容,请不要加 `www.` 前缀。也可以通过前缀 `.`(如 `.mil`)指定仅 TLD,这将获取所有该 TLD 的子域(注意:搜索 TLD 时会排除 Alien Vault OTX 源,因为它需要完整域名)。**注意:输入值中的任何方案、端口号、查询字符串或 URL 片段都会被移除。不过,如果提供了路径,则会专门搜索该路径,从而限制结果。** |
| -mode | | 运行模式:`U`(仅检索 URL),`R`(仅下载响应)或 `B`(两者)。如果 `-i` 仅是域名,则 `-mode` 默认 `B`。如果 `-i` 包含路径,则 `-mode` 默认 `R`。 |
| -oU | --output-urls | 保存链接输出的文件路径(包括必要时的路径)。如果未传入 `-oR` 参数,则会在 `config.yml` 中 `DEFAULT_OUTPUT_DIR` 键指定的路径下创建 `/results` 目录(默认 `~/.config/waymore/`)。在此目录下会创建以目标域名(或带路径的域名)命名的子目录,针对 `-i` 中的每个文件行或单个域名。示例:`-oU ~/Recon/Redbull/waymoreUrls.txt` |
| -oR | --output-responses | 保存响应输出文件的目录路径(包括必要时的路径)。如果未传入此参数,则会在 `config.yml` 中 `DEFAULT_OUTPUT_DIR` 键指定的路径下创建 `/results` 目录(默认 `~/.config/waymore/`)。在此目录下会创建以目标域名(或带路径的域名)命名的子目录,针对 `-i` 中的每个文件行或单个域名。示例:`-oR ~/Recon/Redbull/waymoreResponses` |
| -n | --no-subs | 不包含目标域的子域(仅在输入不是带特定路径的域名时使用)。 |
| -f | --filter-responses-only | 初始链接不进行过滤,仅过滤已下载的响应,例如仍想看到所有可用路径但不检查内容时。 |
| -fc | | 为检索的 URL 和响应过滤 HTTP 状态码。逗号分隔的码列表(默认:`config.yml` 中的 `FILTER_CODE`)。传入此参数会覆盖 `config.yml` 中的值。 |
| -ft | | 为检索的 URL 和响应过滤 MIME 类型。逗号分隔的类型列表(默认:`config.yml` 中的 `FILTER_MIME`)。传入此参数会覆盖 `config.yml` 中的值。**注意:此过滤不适用于 Alien Vault OTX、Virus Total 和 Intelligence X,因为它们无法按 MIME 类型过滤。URLScan 有时没有定义 MIME 类型——这些会始终被包含。若此对你重要,请考虑排除相应来源。** |
| -mc | | 只匹配检索的 URL 和响应的 HTTP 状态码。逗号分隔的码列表。传入此参数会覆盖 `config.yml` 中的 `FILTER_CODE` 与 `-fc`。 |
| -mt | | 只匹配检索的 URL 和响应的 MIME 类型。逗号分隔的类型列表。传入此参数会覆盖 `config.yml` 中的 `FILTER_MIME` 与 `-ft`。**注意:此过滤不适用于 Alien Vault OTX、Virus Total 和 Intelligence X,因为它们无法按 MIME 类型过滤。URLScan 有时没有定义 MIME 类型——这些会始终被包含。若此对你重要,请考虑排除相应来源。** |
| -l | --limit | 将保存的响应数量(如果 `-mode R` 或 `-mode B`)。正值获取 **前 N** 条结果,负值获取 **后 N** 条结果。0 表示获取 **全部** 响应(默认 5000)。 |
| -from | --from-date | 数据起始日期。若未指定,则从最早的结果开始。可传入部分日期,如 `2016`、`201805` 等。**重要:某些来源在日期限制内无法获取 URL,例外情况:Virus Total - 仍返回所有已知子域;Intelligence X - 仍返回所有 URL。** |
| -to | --to-date | 数据结束日期。若未指定到最新的结果。可传入部分日期,如 `2021`、`202112` 等。**重要:同上。** |
| -ci | --capture-interval | 在 archive.org 上过滤搜索,仅获取每小时(`h`)、每日(`d`)或每月(`m`)最多一次捕获。此过滤仅用于响应。默认 `d`,也可设为 `none` 以不过滤并获取所有响应。 |
| -ra | --regex-after | 对所有来源的 URL 与已下载响应的链接进行正则过滤。仅输出匹配的结果。 |
| -url-filename | | 将下载的响应文件名设为生成该响应的 URL,否则使用响应的哈希值。使用哈希值意味着相同响应的多个 URL 只会保存一个文件。 |
| -xwm | | 排除 Wayback Machine(archive.org)中的链接检查 |
| -xcc | | 排除 commoncrawl.org 中的链接检查 |
| -xav | | 排除 alienvault.com 中的链接检查 |
| -xus | | 排除 urlscan.io 中的链接检查 |
| -xvt | | 排除 virustotal.com 中的链接检查 |
| -xix | | 排除 Intelligence X.com 中的链接检查 |
| -xga | | 排除 ghostarchive.org 中的链接检查 |
| -lcc | | 限制搜索的 Common Crawl 索引集合数量,例如 `-lcc 10` 只搜索最近的 10 个集合(默认 1)。截至 2024 年 11 月已有 106 个集合。设为 `0` 则搜索 **全部** 集合。若不想搜索 Common Crawl,请使用 `-xcc` 选项。 |
| -t | --timeout | 仅针对归档响应!在放弃前等待服务器发送数据的秒数(默认 30)。 |
| -p | --processes | 当从文件中获取 URL 时使用的基本多线程数。此参数决定使用的进程(线程)数量(默认 2)。 |
| -r | --retries | 对发生连接错误或被速率限制的请求的重试次数(默认 1)。 |
| -sip | --source-ip OR --bind-ip | 将外发 HTTP/HTTPS 请求绑定到此源 IP(在多网卡主机上有用)。传入此参数会覆盖 `config.yml` 中的 `SOURCE_IP` 值。 |
| -m | --memory-threshold | 内存阈值百分比。如果机器内存超过阈值,程序将在耗尽内存前优雅停止(默认 95)。 |
| -ko | --keywords-only | 只返回包含感兴趣关键字的链接和响应。若未提供显式值,则从 `config.yml` 中的 `FILTER_KEYWORDS`(逗号分隔)获取关键字,例如 `admin,portal`。 |
| -lr | --limit-requests | 限制从单一来源获取链接时的请求数量(不适用于 Common Crawl)。某些目标会产生大量请求,使用此参数可管理此情形。默认 0(无限制)。 |
| -ow | --output-overwrite | 如果 URL 输出文件(默认 `waymore.txt`,或 `-oU` 指定)已存在,则会覆盖而非追加。 |
| -nlf | --new-links-file | 若传入此参数,会生成 `waymore.new` 文件(若使用 `-oU`,则在该文件名后加 `.new`),其中包含最新运行的链接。可用于持续监控目标(仅限 `mode U`,不适用于 `mode R`)。 |
| | --stream | 当找到 URL 时立即输出到 STDOUT(会显示重复)。仅在 `-mode U` 时有效。所有其他输出被抑制,使用 `-v` 查看错误。使用 `-oU` 明确保存结果到文件(会去重)。 |
| -c | --config | YML 配置文件路径。若未传入,则在默认目录(通常 `~/.config/waymore`)查找 `config.yml`。 |
| -wrlr | --wayback-rate-limit-retry | 在 Wayback Machine(archive.org)遇到速率限制时等待的分钟数(默认 3),而不是直接返回 `429` 错误。 |
| -urlr | --urlscan-rate-limit-retry | 在 URLScan.io 遇到速率限制时等待的分钟数(默认 1),而不是直接返回 `429` 错误。 |
| -co | --check-only | 进行少量请求以显示需要多少请求以及大致耗时,以便了解从来源获取 URL 和从 Wayback Machine 下载响应的时间(无法检查 URLScan 下载响应的时间)。 |
| -nd | --notify-discord | 当 waymore 完成时是否向 Discord 发送通知。需要在 `config.yml` 中提供 `WEBHOOK_DISCORD`。 |
| -nt | --notify-telegram | 当 waymore 完成时是否向 Telegram 发送通知。需要在 `config.yml` 中提供 `TELEGRAM_BOT_TOKEN` 和 `TELEGRAM_CHAT_ID`。 |
| -oijs | --output-inline-js | 当使用 `-mode R`(或 `-mode B`)时,是否在响应目录中保存所有相关文件的合并内联 JavaScript。文件名为 `combinedInline{}.js`,`{}` 为文件序号,每个文件最多 1000 条唯一脚本。还会创建 `combinedInlineSrc.txt`,其中包含所有外部脚本的 `src` 值。 |
| -v | --verbose | 详细输出 |
| | --version | 显示当前版本号 |
| -h | --help | 显示帮助信息并退出 |
## 使用 Docker 运行
安装 [docker](https://docs.docker.com/get-docker/)
```
git clone https://github.com/xnl-h4ck3r/waymore.git
cd waymore
```
构建镜像:
```
docker build -t waymore .
```
使用以下命令运行 waymore:
```
docker run -it --rm -v $PWD/results:/app/results waymore:latest -i example.com -oU example.com.links -oR results/example.com/
```
## 输入与模式
`-i` 参数既可以是仅域名,例如 `redbull.com`,也可以是带路径的域名,例如 `redbull.com/robots.txt`。也可以传入域名/URL 文件进行处理(或通过管道从其他程序传入)。**注意:输入值中的任何方案、端口号、查询字符串或 URL 片段都会被移除。不过,如果提供了路径,则会专门搜索该路径,从而限制结果。**
waymore 有多种运行模式。`-mode` 参数可取三种值:
- `U` - 从 archive.org(除非传入 `-xwm`)、commoncrawl.org(除非传入 `-xcc`)、otx.alienvault.com(除非传入 `-xav`)以及 urlscan.io(除非传入 `-xus`)检索 URL。
- `R` - 从 archive.org 下载响应。
- `B` - 同时检索 URL 与下载响应。
如果输入是特定 URL,例如 `redbull.com/robots.txt`,则 `-mode` `R`(仅下载响应)。不能将模式改为 `U` 或 `B`,因为对特定 URL 并不需要检索 URL。
如果输入仅是域名,例如 `redbull.com`,则 `-mode` 默认 `B`。可以根据需要改为 `U` 或 `R`。仅传入域名时会检索该域及其子域的所有 URL/响应(除非传入 `-n`)。若未传入 `-n`,默认仍包含 `www` 子域。
## config.yml
`config.yml`(通常位于 `~/.config/waymore/`)中包含可根据需求更新的值。过滤器均为逗号分隔列表:
- `FILTER_CODE` - 用于排除从 web.archive.org 获取的响应以及当 `-i` 为目录时的文件名,例如 `301,302`。可通过 `-fc` 参数覆盖。传入 `-mc`(匹配而非过滤)会覆盖 `FILTER_CODE` 或 `-fc` 中的值。
- `FILTER_MIME` - 用于过滤从 web.archive.org 通过 API 获取的链接和响应的 MIME 类型,例如 `'text/css,image/jpeg`。可通过 `-ft` 参数覆盖。传入 `-mt`(匹配而非过滤)会覆盖 `FILTER_MIME` 或 `-ft` 中的值。
- `FILTER_URL` - 用于过滤从 web.archive.org 通过 API 获取的响应代码,例如 `.css,.jpg`。
- `FILTER_KEYWORDS` - 当传入 `-ko`/`--keywords-only`(且未提供显式值)时,仅返回包含这些关键字的链接和响应,例如 `admin,portal`。
- `URLSCAN_API_KEY` - 访问 [urlscan.io](https://urlscan.io/user/signup) 注册获取 **免费** API 密钥(亦有付费订阅)。建议获取密钥并写入配置文件,以便更快获取更多数据。注意:若未付费订阅会受到速率限制。
- `CONTINUE_RESPONSES_IF_PIPED` - 若归档响应未完成,下次会提示是否继续上一次运行。但若 `stdout` 被管道到其他进程,则默认不进行交互提示。默认 `True`(会继续上一次运行),若希望每次全新运行请设为 `False`。
- `WEBHOOK_DISCORD` - 若使用 `--notify-discord` 参数,waymore 会向此 Discord webhook 发送通知。
- `TELEGRAM_BOT_TOKEN` - 若使用 `--notify-telegram` 参数,waymore 会使用此 token 向 Telegram 发送通知。
- `TELEGRAM_CHAT_ID` - 若使用 `--notify-telegram` 参数,waymore 会向此聊天 ID 发送通知。
- `DEFAULT_OUTPUT_DIR` - 若 `-oU` 与 `-oR` 未使用,输出文件默认写入此目录。若该键为空,则默认使用 `config.yml` 所在目录。
- `INTELX_API_KEY` - 访问 [intelx.io here](https://intelx.io/product) 注册。需要学术或付费 API 密钥才能使用 `/phonebook/search`(截至 2024‑09‑01,Phonebook 服务已限制为学术或付费用户)。若使用有效学术邮箱注册,可获得免费学术 API 密钥。
- `SOURCE_IP` - 可选。将外发 HTTP/HTTPS 请求绑定到特定源 IP(在多网卡主机上有用)。也可通过 `--source-ip/--bind-ip` CLI 标志设置(CLI 优先)。
**注意:Alien Vault OTX、Virus Total 与 Intelligence X 无法按 MIME 类型过滤。URLScan 有时没有定义 MIME 类型——这些会始终被包含。若此对你重要,请考虑排除相应提供商。**
## 输出
在 `config.yml` 中的 `DEFAULT_OUTPUT_DIR`(若为空则默认使用 `config.yml` 所在目录,通常为 `~/.config/waymore/`)下会创建 `results` 目录。其下会创建以目标域名(或带路径的域名)命名的子目录,针对 `-i` 中的每个文件行或单个域名。也可以使用 `-oU` 指定链接文件的输出位置(及文件名)。`-oR` 可指定归档响应的输出目录(或路径)。
运行后,目标目录会生成以下文件:
- `waymore.txt` - 若 `-mode` 为 `U` 或 `B`,该文件包含选定来源的链接。链接会从 archive.org Wayback Machine(除非传入 `-xwm`)、commoncrawl.org(除非传入 `-xcc`)、otx.alienvault.com(除非传入 `-xav`)以及 urlscan.io(除非传入 `-xus`)检索。若同时传入 `-ow`,则会覆盖目标 results 目录中已有的 `waymore.txt`,否则会追加新链接并去重。
- `index.txt` - 若 `-mode` 为 `R` 或 `B`,且未传入 `-url-filename`,则下载的归档响应会使用哈希值作为文件名。该文件包含 `
,,` 的逗号分隔列表,以便你了解哪些 URL 产生了哪些响应。
- **其他文件** - 若 `-mode` 为 `R` 或 `B`,会创建相应的归档响应文件。若传入 `-url-filename`,文件名将为生成响应的归档 URL(如 `https--example.com-robots.txt`),否则使用哈希值(如 `7960113391501.{EXT}`,其中 `{EXT}` 为从路径或响应 `content-type` 推断的扩展名)。使用哈希值可减少文件数量,因为相同响应只会保存一次。保存前会去除文件中对 `web.archive.org` 的引用。
## 信息与建议
发现的链接数量以及可能需要下载的归档响应文件数量对许多域名来说可能是 **巨大的**。此工具并非追求速度,而是追求覆盖范围,请耐心使用。
`-p` 参数可增加进程数(在从所有来源获取链接并下载 archive.org 响应时使用)。虽然可能不如你期望的快,但建议保持默认的 3,因为更高的值会导致获取响应时出现问题。我们不想给这些服务带来负担,请合理使用!
我经常使用 `-f` 参数,因为我希望 `waymore.txt` 包含所有可能的链接。即使不在意图像、字体等,仍然希望看到所有可能的路径和参数。所有过滤器仍会在下载归档响应时生效,避免浪费时间下载大量图片!
使用 `-v` 参数可以查看内部执行情况,帮助排查未得到预期输出的问题。
使用 `-v` 时会显示所有来源(除 Alien Vault)找到的 URL 的 MIME 类型,这有助于在仍看到不想要的内容时添加进一步的排除。若发现某个 MIME 类型被包含但不想保留,请将其加入 `config.yml` 中的 `FILTER_MIME`。
需要注意的是,archive.org 上的 MIME 类型有时记录为 `unk` 或 `unknown`,而非真实 MIME,过滤器可能无法将其过滤掉。`FILTER_URL` 配置可用于事后删除。例如,若 GIF 的 MIME 类型为 `unk` 而非 `image/gif`(且已在 `FILTER_MIME` 中),则不会被过滤;但若 URL 为 `https://target.com/assets/logo.gif` 且 `.gif` 在 `FILTER_URL` 中,则不会请求该 URL。
如果 `config.yml` 不存在或其中没有过滤器条目,则使用默认过滤器。最好拥有该文件并检查以确保获得所需内容。
可能会产生数百万条响应,请务必设置过滤器,以及 `-l`(限制)、`-from`(起始日期)、`-to`(结束日期)和/或 `-ci`(捕获间隔)等参数。默认限制为 5000 条,例如想获取 2015 年至 2018 年 1 月的最新 20,000 条响应,可使用 `-l -00 -from 2015 -to 201801`。捕获间隔决定在指定时间段内每个 URL 下载多少响应,例如设为 `m` 则每月仅下载一次。默认 `d` 能显著减少响应数量,且除非目标在同一天多次更改,否则不太会错过唯一响应。
另一个有用的参数是 `-mc`,只获取 HTTP 状态码匹配逗号分隔列表的结果,例如 `-mc 200` 或 `-mc 200,403`。
你也可以通过仅返回包含感兴趣关键字的链接和响应来大幅减少数量,从而缩短执行时间。可在 `config.yml` 中使用 `FILTER_KEYWORDS` 列出关键字,然后传入 `-ko`/`--keywords-only` 使用,或传入特定正则,例如 `-ko "\.js(\?|$)"` 仅获取 JS 文件。正则匹配不区分大小写。
如前所述,注册 [urlscan.io](https://urlscan.io/user/signup) 获取 **免费** API 密钥(亦有付费订阅)。建议获取密钥并写入 `config.yml`,以便更快获取更多数据。注意:若未付费订阅会受到速率限制。
archive.org Wayback Machine CDX API 有时需要大量请求才能获取所有链接。例如,对 `-i twitter.com` 运行 **waymore** 时,需要 **28,903,799** 次请求(对某些人几乎需要 1000 天)。`-lr` 参数可限制每个来源的请求数量(通常是 archive.org 的问题)。默认值为 0(无限制),即不限制。
Wayback Machine CDX API 还有一个问题:在应用过滤器时返回的页面数量不正确,可能导致问题(见 https://github.com/internetarchive/wayback/issues/243)。在该问题解决前,将 `-lr` 参数设为合理值可在短期内缓解。
Common Crawl API 长期存在大量问题。使用该来源会显著延长运行时间且可能没有额外收益。可访问 http://index.commoncrawl.org/collinfo.json 检查是否可用。考虑使用 `--providers` 参数排除 Common Crawl,或使用 `-xcc` 参数。
**提供商的 API 服务器并非为大规模请求设计,请理性且体贴地使用!**
下载归档响应时可能耗时很长,甚至被机器或用户手动终止。
在目标 `results` 目录下,会在进程开始时创建 `responses.tmp`,其中包含所有待检索的响应 URL。还有 `continueResp.tmp`,存储最新已检索响应的索引。若 `waymore` 运行以获取响应(`-mode R` 或 `-mode B`),且这些文件存在,则说明上一次运行未完成,会询问是否继续上一次运行。若同意,会从上次中断处继续。
## 基础示例
### 示例 1
仅获取 `redbull.com` 所有来源的 URL(`-mode U` 只获取 URL,不下载响应):
URL 会保存在与 `config.yml` 同路径下(通常 `~/.config/waymore`)的 `results/redbull.com/waymore.txt` 中。
### 示例 2
从 Wayback 获取 `redbull.com` 的全部 URL(`mode U` 中不使用过滤,且 `-f` 不会从 Common Crawl、Alien Vault、URLScan、Virus Total 检索 URL,因为分别传入了 `-xcc`、`-xav`、`-xus`、`-xvt`。也可通过传入 `--providers wayback` 替代排除参数)。
保存从 2022 年开始的前 200 条响应(`-l 200 -from 2022`):
`-mode` 未显式设置,默认 `B`(同时检索 URL 与下载响应)。
每个唯一响应会生成一个文件,并保存在 `results/redbull.com/`:
还会生成 `results/redbull.com/index.txt`,记录哪些 URL 对应哪个响应文件,例如:
```
4847147712618,https://web.archive.org/web/20220426044405/https://www.redbull.com/additional-services/geo ,2022-06-24 20:07:50.603486
```
其中 `4847147712618` 是 `4847147712618.xnl` 响应的哈希值,第二个值是 Wayback Machine URL,可查看实际归档页面,第三个是下载时间戳。
## 示例 3
可以将 waymore 的输出通过管道传给其他工具。错误信息发送至 `stderr`,找到的链接发送至 `stdout`。输出文件仍会创建,链接会被管道到下一个程序。归档响应不会被管道,但仍会写入文件。例如:
```
waymore -i redbull.com -mode U | unfurl keys | sort -u
```
也可以通过 `stdin` 传入输入,而非 `-i`。
```
cat redbull_subs.txt | waymore
```
## 示例 4
有时只想检查请求数量以及 `waymore` 可能需要的时间。可使用 `-co`/`--check-only` 参数快速检查。例如:
```
waymore -i redbull.com --check-only
```
## 寻找更多 URL!
现在你已经拥有大量归档响应,想要发现更多链接?轻而易举!何不使用 [xnLinkFinder](https://github.com/xnl-h4ck3r/xnLinkFinder)?
示例:
```
xnLinkFinder -i ~/Tools/waymore/results/redbull.com -sp https://www.redbull.com -sf redbull.com -o redbull.txt
```
或使用其他工具如 [trufflehog](https://github.com/trufflesecurity/trufflehog) 或 [gf](https://github.com/tomnomnom/gf) 对响应目录进行进一步搜索,获取更多归档响应中的链接!
## 深入说明
以下是我在 2024 年 3 月为 [Jason Haddix's discord channel](https://discord.gg/jhaddix) 所做的深入演讲,涵盖 **所有** 需要了解的 `waymore` 内容。
**注意:该视频拍摄于 2024 年 3 月,之后新增的功能可能未在视频中出现,部分功能也可能已更改。请再次确认当前说明。**
[](https://www.youtube.com/watch?v=hMaYSi9ErnM)
## 问题
如果遇到任何问题或有改进想法,请在 Github 上提出 issue。若出现问题,请提供完整的运行命令和详细的错误描述。尽可能使用 `-v` 重现问题,并告知出现的错误信息。
## TODO
- 添加 `-oos` 参数,接受一个超出范围的子域/URL 列表文件,这些子域/URL 不会出现在输出中,也不会下载任何响应。
- `waymore_index.txt` 在对同一输入多次运行(`-mode R` 或 `-mode B`)时未去重。
- 重写为并行获取来源。目前是顺序执行,抱歉!
## 参考
- [Wayback CDX Server API - BETA](https://github.com/internetarchive/wayback/tree/master/wayback-cdx-server)
- [Common Crawl Index Server](https://index.commoncrawl.org/)
- [Alien Vault OTX API](https://otx.alienvault.com/assets/static/external_api.html)
- [URLScan API](https://urlscan.io/docs/api/)
- [VirusTotal API (v2)](https://docs.virustotal.com/v2.0/reference/getting-started)
- [Intelligence X SDK](https://github.com/IntelligenceX/SDK?tab=readme-ov-file#intelligence-x-public-sdk)
- [GhostArchive](https://ghostarchive.org/)
祝你好运,玩得开心!
如果你真的喜欢这个工具(或其他工具),或它帮助你获得了惊人的赏金,请考虑 [BUYING ME A COFFEE!](https://ko-fi.com/xnlh4ck3r) ☕(我需要咖啡!)
🤘 /XNL-h4ck3r标签:Ask搜索, CLI工具, CLI工具, Python, Python扩展, tcpdump, VirusTotal, Wayback Machine, 二进制发布, 参数发现, 反汇编, 子域名枚举, 开发者评论分析, 开源工具, 归档响应下载, 恶意代码识别, 抓包, 数字取证, 数据包捕获, 文本匹配, 无后门, 漏洞赏金, 签名检测, 系统安全, 网络安全, 自动化脚本, 计算机取证, 请求拦截, 逆向工具, 链接提取, 隐私保护