expl0itlab/xtra

GitHub: expl0itlab/xtra

XTRA 是一款纯 Bash 编写的多页面 Web 侦察工具,用于批量提取目标站点的联系方式、链接、技术栈和安全标头等信息,服务于安全评估和漏洞赏金场景。

Stars: 2 | Forks: 1

# XTRA v2.0 — Web 侦察工具 ![Version](https://img.shields.io/badge/Version-2.0-blue) ![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20Termux%20%7C%20macOS-orange) ![License](https://img.shields.io/badge/License-MIT-green) ![Shell](https://img.shields.io/badge/Shell-Bash-lightgrey) ![Year](https://img.shields.io/badge/Year-2026-brightgreen) XTRA 是一款使用纯 Bash 编写的多页面 Web 侦察工具。它会抓取整个站点而不仅仅是单个页面,并提取邮箱、电话号码、社交媒体主页、链接、元数据、HTTP 标头、HTML 注释和技术栈信息。结果将保存在井然有序的输出文件中,并支持可选的 JSON 和 CSV 导出。 ## v2.0 的新特性 | 功能 | v1.0 | v2.0 | |---|---|---| | 扫描页面数 | 1 | 最多 500+(可配置) | | 电话准确度 | 误报率高 | `tel:` href 优先 + 国际格式 | | 社交媒体主页 | ✗ | ✓ 12 个平台 | | 技术检测 | ✗ | ✓ 40+ 特征 | | HTTP 标头分析 | ✗ | ✓ 原始标头 + 安全漏洞报告 | | HTML 注释提取 | ✗ | ✓ | | robots.txt / sitemap.xml | ✗ | ✓ 自动抓取,URL 加入队列 | | JSON 导出 | ✗ | ✓ | | CSV 导出 | ✗ | ✓ | | 内部与外部链接 | ✗ | ✓ 自动拆分 | | 安静 / 详细模式 | ✗ | ✓ | | 抓取速率限制 | ✗ | ✓ 可配置延迟 | ## 功能 ### 爬虫 - 可配置深度和页面限制的递归式多页面抓取 - 跟踪已访问的 URL 以防止循环 - 域名范围限定 —— 仅停留在目标站点,不会漫游到第三方 - 页面之间的礼貌请求延迟(可配置) - 解析 robots.txt 中禁止访问的路径;sitemap.xml 中的 URL 直接输入到抓取队列中 ### 提取 - **邮箱** —— 自动去重,过滤掉类似 `example@test.com` 的占位符地址 - **电话号码** —— 首先从 `tel:` href 属性中提取(高可信度),然后提取国际和美国格式 - **社交媒体主页** —— Twitter/X、LinkedIn(个人 + 公司)、GitHub、Instagram、Facebook、YouTube、TikTok、Telegram、Reddit - **链接** —— 所有发现的 URL,自动拆分为内部和外部文件 - **HTML 注释** —— 所有 `` 块,通常包含内部路径、凭据或开发者笔记 - **页面元数据** —— 每个抓取页面的标题、描述、关键词、字符集 ### 情报 - **技术检测** —— 40+ 项特征,涵盖 CMS(WordPress、Drupal、Shopify、Joomla),JS 框架(React、Vue、Angular、Next.js),分析工具(GA4、GTM、Hotjar、Mixpanel),CDN(Cloudflare、Fastly、CloudFront),服务器软件(Nginx、Apache、Varnish),电子商务平台等 - **HTTP 标头分析** —— 每个页面保存原始标头;一份单独的安全报告会标记缺失的 `X-Frame-Options`、`Content-Security-Policy`、`Strict-Transport-Security` 和 `X-XSS-Protection` ### 输出 - 整洁、带有时间戳的输出文件夹 - 可选的 JSON 导出(结构化,兼容 jq) - 可选的 CSV 导出(扁平化的类型/值格式,适用于电子表格) - 用于脚本编写的安静模式;用于调试的详细模式 - 每次扫描结束时打印摘要表 ## 安装说明 **标准安装 (Linux / macOS / WSL)** ``` git clone https://github.com/expl0itlab/xtra.git cd xtra chmod +x xtra.sh ``` **一行命令** ``` curl -sL https://raw.githubusercontent.com/expl0itlab/xtra/main/xtra.sh -o xtra.sh && chmod +x xtra.sh ``` **Termux (Android)** ``` pkg install git curl -y git clone https://github.com/expl0itlab/xtra.git cd xtra chmod +x xtra.sh ``` **依赖项** —— `curl`、`grep`、`sed`、`awk`、`sort`(在 Linux/macOS 上均为标准配置)。`python3` 为可选项,如果安装则可启用完整的 JSON 导出;如果未安装,将使用基本的备用方案。 ## 运行说明 ### 交互模式 ``` ./xtra.sh ``` 提示输入 URL、扫描模式、抓取设置和输出选项。 ### CLI 模式 ``` ./xtra.sh -u [options] ``` ### 选项 | 选项 | 简写 | 描述 | 默认值 | |---|---|---|---| | `--url URL` | `-u` | 目标 URL(必填) | — | | `--fast` | `-f` | 完全抓取,提取所有内容 | ✓ 默认 | | `--single` | `-s` | 仅扫描单个页面 | — | | `--meta` | `-m` | 仅限元数据 + 标头 + 技术检测 | — | | `--depth N` | `-d` | 最大抓取深度 | 3 | | `--pages N` | `-p` | 最大抓取页面数 | 50 | | `--delay N` | `-w` | 请求之间的秒数 | 1 | | `--output DIR` | `-o` | 输出目录 | 自动添加时间戳 | | `--json` | | 将结果导出为 JSON | 关闭 | | `--csv` | | 将结果导出为 CSV | 关闭 | | `--quiet` | `-q` | 抑制除错误和摘要之外的所有输出 | 关闭 | | `--verbose` | `-v` | 显示每个请求和匹配项 | 关闭 | | `--help` | `-h` | 显示帮助 | — | ## 示例 ``` # 全站爬取 — 最多 100 个页面,导出 JSON,保存到 ./results ./xtra.sh -u https://example.com -f -p 100 --json -o ./results # 快速单页扫描 ./xtra.sh -u https://example.com -s # 仅 Metadata 和技术检测,静默输出 ./xtra.sh -u https://example.com -m -q # 深度爬取,请求间设置 2 秒礼貌延迟 ./xtra.sh -u https://example.com -f -d 5 -p 200 -w 2 # 完整爬取,同时导出 JSON 和 CSV ./xtra.sh -u https://example.com -f --json --csv # 用于调试的 Verbose 模式 ./xtra.sh -u https://example.com -s -v ``` ## 输出结构 ``` xtra_results_20250615_142301/ ├── emails.txt Extracted email addresses (deduplicated) ├── phones.txt Phone numbers ├── socials.txt Social media profile URLs ├── links.txt All discovered URLs ├── links_internal.txt URLs on the same domain ├── links_external.txt URLs on external domains ├── metadata.txt Per-page title, description, keywords, charset ├── html_comments.txt All HTML source comments ├── technologies.txt Detected tech stack ├── headers.txt Raw HTTP response headers per page ├── security_headers.txt Missing security headers flagged per page ├── robots.txt Target's robots.txt (if present) ├── results.json Full structured export (with --json) ├── results.csv Flat type/value export (with --csv) └── report.txt Scan summary report ``` ### JSON 结构 ``` { "meta": { "tool": "XTRA", "version": "2.0", "timestamp": "2025-06-15T14:23:01Z", "target": "https://example.com", "base_domain": "example.com", "scan_mode": "crawl", "pages_crawled": 42 }, "emails": ["contact@example.com"], "phones": ["+1 800 555 0100"], "socials": ["https://github.com/example"], "links": ["https://example.com/about"], "links_internal": ["https://example.com/about"], "links_external": ["https://cdn.example.net"], "technologies": ["WordPress", "Cloudflare", "jQuery"], "security_missing_headers": ["Content-Security-Policy", "X-Frame-Options"] } ``` ## 检测到的技术 XTRA 可对以下类别的 40+ 项技术进行指纹识别: **CMS** —— WordPress、Joomla、Drupal、Magento、Shopify、Wix、Squarespace、Ghost **框架 / 语言** —— Laravel、Django、Ruby on Rails、ASP.NET、PHP **JavaScript** —— React、Vue.js、Angular、Next.js、Nuxt.js、jQuery **UI / CSS** —— Bootstrap、Tailwind CSS、Bulma **分析工具** —— Google Analytics 4、Google Tag Manager、Hotjar、Matomo、Mixpanel **CDN / 基础设施** —— Cloudflare、Fastly、AWS CloudFront、Nginx、Apache、Varnish **电子商务** —— WooCommerce、PrestaShop、OpenCart **支持 / 聊天** —— Intercom、Zendesk、Algolia **安全** —— reCAPTCHA、hCaptcha ## 安全标头分析 对于抓取的每个页面,XTRA 都会检查是否存在以下标头,并在 `security_headers.txt` 中标记出任何缺失的标头: - `X-Frame-Options` —— 点击劫持保护 - `Content-Security-Policy` —— XSS 和注入缓解 - `Strict-Transport-Security` —— 强制执行 HTTPS - `X-XSS-Protection` —— 旧版 XSS 过滤器 - `Access-Control-Allow-Origin` —— CORS 策略 ## 故障排除 **权限不足** ``` chmod +x xtra.sh ``` **缺少依赖项(手动安装)** ``` # Debian / Ubuntu sudo apt-get install curl grep sed gawk # Arch sudo pacman -S curl grep sed gawk # Termux pkg install curl grep sed gawk ``` **已知页面包含邮箱但无结果** 带上 `-v`(详细模式)运行以查看每个请求。该网站可能是 JavaScript 渲染的 —— XTRA 仅适用于服务器渲染的 HTML,且不执行 JavaScript。对于重度依赖 JS 的网站,请将 XTRA 与 `wget --mirror` 或 Playwright 等工具结合使用以预渲染页面。 **很快被拦截** 增加请求之间的延迟:`-w 3` 或更高。一些网站还会拦截默认的 user-agent —— v2.0 中使用的完整 Chrome UA 会有所帮助,但激进的 WAF 仍可能会拦截自动化请求。 **JSON 导出失败** 确保已安装 `python3`。当 python3 不可用时,将使用基本的 JSON 备用方案(仅限邮箱)。 ## 道德与合法使用 XTRA 的构建初衷是用于: - 对您拥有或获得**书面许可**进行测试的系统进行安全评估 - 漏洞赏金计划 —— 仅针对范围内的目标 - 有关 Web 技术的教育用途和学习 - 授权的渗透测试活动 **请勿在未经授权的情况下使用 XTRA 扫描系统。** 未经授权的扫描可能违反《计算机欺诈和滥用法》(美国)、《计算机滥用法》(英国)以及其他司法管辖区的同等法律。您需对如何使用此工具负全部责任。 ## 许可证 MIT 许可证 —— 详情请参阅 [LICENSE](LICENSE)。 *由 Exploit Lab | Tremor 开发 — XTRA v2.0 | 2026*
标签:Bash, ESC4, OSINT, 实时处理, 应用安全