Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
urx — 从 OSINT 档案中提取 URL,用于安全洞察 | Kitploit
工具/GitHubGitHub/hahwul/urx
OSINT (开源情报)侦察信息收集Web安全网络爬虫
GitHubhahwul/urx

urx

从 OSINT 档案中提取 URL,用于安全洞察

查看仓库
1902098小时11分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站
Urx Logo

从 OSINT 归档中提取 URL,用于安全洞察。

Urx 是一款命令行工具,旨在从 OSINT 归档(如 Wayback Machine 和 Common Crawl)中收集 URL。基于 Rust 构建以实现高效,它利用异步处理快速查询多个数据源。该工具简化了为指定域名收集 URL 信息的过程,提供全面的数据集,可用于多种目的,包括安全测试和分析。

特性

  • 从多个数据源并行获取 URL(Wayback Machine、Common Crawl、OTX、Arquivo.pt)
  • 默认无密钥:Wayback、Common Crawl、OTX、Arquivo.pt 和 URLScan(匿名)均无需 API 密钥即可使用
  • 支持 VirusTotal 和 URLScan 提供商的 API 密钥轮换,以缓解速率限制
  • 按文件扩展名、模式或预定义预设(例如 "no-image" 排除图片)过滤结果
  • URL 规范化与去重:排序查询参数、移除尾部斜杠、合并语义相同的 URL
  • 支持多种输出格式:纯文本、JSON、CSV
  • 直接文件输入支持:从 WARC 文件、URLTeam 压缩文件和文本文件中直接读取 URL
  • 将结果输出到控制台或文件,或通过标准输入流进行管道集成
  • URL 测试:
    • 根据 HTTP 状态码和模式过滤并验证 URL
    • 从收集到的 URL 中提取额外链接
  • 缓存与增量扫描:
    • 本地 SQLite 或远程 Redis 缓存,避免重复扫描域名
    • 增量模式,仅发现自上次扫描以来的新 URL
    • 可配置的缓存 TTL 及自动清理过期条目

Preview

安装

通过 Cargo

root@kitploit:~
# https://crates.io/crates/urx
cargo install urx

通过 Homebrew

root@kitploit:~
# https://formulae.brew.sh/formula/urx
brew install urx

从源码编译

root@kitploit:~
git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release

编译后的二进制文件位于 target/release/urx。

通过 Docker

ghcr.io/hahwul/urx

使用方法

基本用法

root@kitploit:~
# 扫描单个域名
urx example.com

# 扫描多个域名
urx example.com example.org

# 从文件读取域名
cat domains.txt | urx

选项

root@kitploit:~
Usage: urx [OPTIONS] [DOMAINS]...

Arguments:
  [DOMAINS]...  要获取 URL 的域名

Options:
  -c, --config <CONFIG>           加载配置文件
      --provider-config <PATH>    单独的提供商配置文件,仅包含 API 密钥(默认:$XDG_CONFIG_HOME/urx/provider-config.toml)。CLI/环境变量 > provider-config > 主配置。
  -h, --help                      打印帮助信息
  -V, --version                   打印版本号

Input Options:
      --files <FILES>...          直接从文件读取 URL(支持 WARC、URLTeam 压缩文件和文本文件)
      --domain-list <PATH>        换行分隔的域名文件,用于扫描(可重复;与位置参数 DOMAINS 和 stdin 合并;允许 `#` 注释)

Output Options:
  -o, --output <OUTPUT>           输出结果的文件
      --output-dir <PATH>         将每个域名的结果写入该目录下的单独文件(扩展名与 --format 匹配)。可与 --output / stdout 共存。
  -f, --format <FORMAT>           输出格式(例如 "plain"、"json"、"csv")[默认: plain]
      --merge-endpoint            合并路径相同且参数合并的端点
      --normalize-url             规范化 URL 以实现更好的去重(排序查询参数、移除尾部斜杠)

Provider Options:
      --providers <PROVIDERS>
          要使用的提供商(逗号分隔,例如 "wayback,cc,otx,arquivo,vt,urlscan")[默认: wayback,cc,otx]
      --exclude-providers <EXCLUDE_PROVIDERS>
          要排除的提供商(逗号分隔)。与 --providers 或 --all-providers 冲突时优先。
      --all-providers
          启用所有支持的提供商。仅当有 API 密钥时才激活需要密钥的提供商。
      --list-providers
          列出所有支持的提供商后退出。
      --subs
          搜索时包含子域名
      --cc-index <CC_INDEX>
          要使用的 Common Crawl 索引;接受逗号分隔列表以并行查询多个索引(例如 `CC-MAIN-2026-17,CC-MAIN-2025-51`)。`latest`(默认值)通过 collinfo.json 解析最新索引。[默认: latest]
      --wayback-from <DATE>
          将 Wayback Machine 结果限制为 DATE 或之后的快照(格式:YYYY/YYYYMM/YYYYMMDD/YYYYMMDDhhmmss)
      --wayback-to <DATE>
          将 Wayback Machine 结果限制为 DATE 或之前的快照(格式同 --wayback-from)
      --vt-api-key <VT_API_KEY>
          VirusTotal 的 API 密钥(可多次使用以实现轮换,也可使用 URX_VT_API_KEY 环境变量以逗号分隔密钥)
      --urlscan-api-key <URLSCAN_API_KEY>
          Urlscan 的可选 API 密钥;该提供商也可匿名使用(速率限制约 30 请求/分钟/ IP)。可多次使用以实现轮换,或通过 URX_URLSCAN_API_KEY(逗号分隔密钥)
      --github-api-key <GITHUB_API_KEY>
          GitHub 代码搜索提供商的个人访问令牌(也可读取 URX_GITHUB_API_KEY,逗号分隔实现轮换)

Discovery Options:
      --exclude-robots   排除 robots.txt 发现
      --exclude-sitemap  排除 sitemap.xml 发现

Display Options:
  -v, --verbose       显示详细输出
      --silent        静默模式(无输出)
      --no-progress   不显示进度条
      --show-sources  在输出 URL 上标注返回它们的提供商
      --stats          运行结束时向 stderr 打印每个提供商的摘要

Filter Options:
  -p, --preset <PRESET>
          过滤预设(例如 "no-resources,no-images,no-audio,only-js,only-style")
  -e, --extensions <EXTENSIONS>
          仅保留具有特定扩展名的 URL(逗号分隔,例如 "js,php,aspx")
      --exclude-extensions <EXCLUDE_EXTENSIONS>
          排除具有特定扩展名的 URL(逗号分隔,例如 "html,txt")
      --patterns <PATTERNS>
          仅保留包含特定模式的 URL(逗号分隔)
      --exclude-patterns <EXCLUDE_PATTERNS>
          排除包含特定模式的 URL(逗号分隔)
      --show-only-host
          仅显示 URL 的主机部分
      --show-only-path
          仅显示 URL 的路径部分
      --show-only-param
          仅显示 URL 的参数部分
      --min-length <MIN_LENGTH>
          包含的最小 URL 长度
      --max-length <MAX_LENGTH>
          包含的最大 URL 长度
      --strict
          强制精确主机验证(默认)

Network Options:
      --network-scope <NETWORK_SCOPE>  控制哪些组件应用网络设置(all, providers, testers, 或 providers,testers)[default: all]
      --proxy <PROXY>                  为 HTTP 请求使用代理(格式:<http://proxy.example.com:8080>)
      --proxy-auth <PROXY_AUTH>        代理认证凭据(格式:username:password)
      --insecure                       跳过 SSL 证书验证(接受自签名证书)
      --random-agent                   为 HTTP 请求使用随机 User-Agent
      --timeout <TIMEOUT>              请求超时时间(秒)[default: 120]
      --retries <RETRIES>              失败请求的重试次数 [default: 2]
      --parallel <PARALLEL>            每个提供商并发获取的最大域名数(以及并发的 URL 测试);提供商的 --rate-limit 在它们之间共享 [default: 5]
      --rate-limit <RATE_LIMIT>        速率限制(每秒请求数)
      --rate-limit-by <PAIRS>          按提供商设置的速率覆盖(例如 `vt=1,wayback=10`);未列出的提供商回退到 --rate-limit
      --max-time <MAX_TIME>            提供商枚举时间的全局上限(秒)(0 = 无限制)[default: 0]

Testing Options:
      --check-status
          检查收集到的 URL 的 HTTP 状态码 [aliases: ----cs]
      --include-status <INCLUDE_STATUS>
          仅保留具有特定 HTTP 状态码或模式的 URL(例如 --is=200,30x)[aliases: ----is]
      --exclude-status <EXCLUDE_STATUS>
          排除具有特定 HTTP 状态码或模式的 URL(例如 --es=404,50x,5xx)[aliases: ----es]
      --extract-links
          从收集到的 URL 中提取额外链接(需要 HTTP 请求)

示例

root@kitploit:~
# 将结果保存到文件
urx example.com -o results.txt

# 以 JSON 格式输出
urx example.com -f json -o results.json

# 仅过滤 JavaScript 文件
urx example.com -e js

# 排除 HTML 和文本文件
urx example.com --exclude-extensions html,txt

# 过滤 API 端点
urx example.com --patterns api,v1,graphql

# 排除特定模式
urx example.com --exclude-patterns static,images

# 使用过滤预设(类似于 --exclude-extensions=png,jpg,.....)
urx example.com -p no-images

# 使用特定提供商
urx example.com --providers wayback,otx

# 添加无密钥的 Arquivo.pt(葡萄牙网页归档)提供商
urx example.com --providers wayback,cc,otx,arquivo

# URLScan 无需密钥即可工作(匿名,有速率限制);密钥仅提高限制
urx example.com --providers urlscan

# 使用 VirusTotal 和 URLScan 提供商
# 1. 显式添加到提供商(通过命令行提供 API 密钥)
urx example.com --providers=vt,urlscan --vt-api-key=*** --urlscan-api-key=***

# 2. 使用环境变量提供 API 密钥
URX_VT_API_KEY=*** URX_URLSCAN_API_KEY=*** urx example.com --providers=vt,urlscan

# 3. 自动启用:提供 API 密钥时自动添加提供商
urx example.com --vt-api-key=*** --urlscan-api-key=*** # 无需在 --providers 中指定

# 4. 多个 API 密钥轮换(以缓解速率限制)
# 使用重复标志提供多个密钥
urx example.com --vt-api-key=key1 --vt-api-key=key2 --vt-api-key=key3

# 使用环境变量,逗号分隔密钥
URX_VT_API_KEY=key1,key2,key3 URX_URLSCAN_API_KEY=ukey1,ukey2 urx example.com

# 结合 CLI 标志和环境变量(CLI 密钥优先使用)
URX_VT_API_KEY=env_key1,env_key2 urx example.com --vt-api-key=cli_key1 --vt-api-key=cli_key2

# 默认包含 robots.txt 和 sitemap.xml 中的 URL

# 排除 robots.txt 中的 URL
urx example.com --exclude-robots

# 排除 sitemap 中的 URL
urx example.com --exclude-sitemap

# 包含子域名
urx example.com --subs

# 检查收集到的 URL 的状态
urx example.com --check-status

# 直接从文本文件读取 URL
urx --files urls.txt

# 文件输入与过滤结合
urx --files urls.txt --patterns api,admin -f json

# 从收集到的 URL 中提取额外链接
urx example.com --extract-links

# 网络配置
urx example.com --proxy http://localhost:8080 --timeout 60 --parallel 10 --insecure

# 高级过滤
urx example.com -e js,php --patterns admin,login --exclude-patterns logout,static --min-length 20

# 基于 HTTP 状态码的过滤
urx example.com --include-status 200,30x,405 --exclude-status 20x

# 禁用主机验证
urx example.com --strict false

# URL 规范化和去重
# 通过对查询参数排序和移除尾部斜杠来规范化 URL
urx example.com --normalize-url

# 结合规范化和端点合并以实现全面去重
urx example.com --normalize-url --merge-endpoint

# 文件输入时的 URL 规范化
urx --files urls.txt --normalize-url

缓存与增量扫描

Urx 支持缓存以提高重复扫描的性能,以及增量扫描以仅发现新 URL。

root@kitploit:~
# 启用 SQLite 缓存(默认)
urx example.com --cache-type sqlite --cache-path ~/.urx/cache.db

# 使用 Redis 进行分布式缓存
urx example.com --cache-type redis --redis-url redis://localhost:6379

# 增量扫描 - 仅显示自上次扫描以来的新 URL
urx example.com --incremental

# 设置缓存 TTL(生存时间)为 12 小时
urx example.com --cache-ttl 43200

# 完全禁用缓存
urx example.com --no-cache

# 增量扫描与过滤结合
urx example.com --incremental -e js,php --patterns api

# 包含缓存设置的配置文件
urx -c example/config.toml example.com

缓存使用场景

root@kitploit:~
# 每日监控 - 仅在新 URL 时发出警报
urx target.com --incremental --silent | notify-tool

# 高效处理域名列表
cat domains.txt | urx --incremental --cache-ttl 3600 > new_urls.txt

# 使用 Redis 的分布式团队扫描
urx example.com --cache-type redis --redis-url redis://shared-cache:6379

# 开发过程中的快速重新扫描
urx test-domain.com --cache-ttl 300  # 5 分钟缓存,用于快速迭代

与其他工具的集成

Urx 可以很好地与其他安全及侦察工具配合使用:

root@kitploit:~
# 查找域名,然后发现 URL
echo "example.com" | urx | grep "login" > potential_targets.txt

# 与其他工具结合
cat domains.txt | urx --patterns api | other-tool

灵感来源

Urx 的灵感来源于 gau (GetAllUrls),该工具从 AlienVault 的开放式威胁交换、Wayback Machine 和 Common Crawl 中获取已知 URL。虽然核心功能相似,但 Urx 使用 Rust 从头构建,专注于性能、并发性和扩展的过滤能力。

贡献

Urx 是一个开源项目,用 ❤️ 制作而成。 如果你想为此项目做贡献,请查看 CONTRIBUTING.md 并使用你的精彩内容提交 Pull Request。

下载工具