kabiri-labs/HostHeaderScanner
GitHub: kabiri-labs/HostHeaderScanner
一款专注于 Host 头注入及相关 Web 漏洞检测的安全扫描器,支持原始 HTTP 绕过、OOB 确认和虚拟主机发现。
Stars: 3 | Forks: 1
# HostHeaderScanner v1.6.0
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://github.com/kabiri-labs/HostHeaderScanner)
**HostHeaderScanner** 是一款先进的安全工具,旨在检测 Host Header Injection 漏洞,包括 Server-Side Request Forgery (SSRF)、Open Redirect 及其他异常情况。它采用精密的技术,包括构造 HTTP 请求和综合分析,以帮助有效保障 Web 应用程序的安全。
## 目录
- [功能](#features)
- [安装说明](#installation)
- [使用说明](#usage)
- [基本用法](#basic-usage)
- [选项](#options)
- [示例](#examples)
- [输出结果](#output)
- [贡献](#contributing)
- [许可证](#license)
- [免责声明](#disclaimer)
- [联系方式](#contact)
## 功能
- **基于反射的 Host Header Injection**:跨 `Host`、`X-Forwarded-Host`、`X-Forwarded-For`、`Forwarded` 及 15 个以上的其他路由 header 注入唯一的随机标记 host,然后检测在响应体、`Location` header 及其他响应 header 中的反射情况。由于标记是唯一的,因此发现的结果具有高可信度(缓存中毒 / 密码重置中毒 / 链接中毒)。
- **原始 HTTP 验证绕过**:使用内置的原始 HTTP/1.1 客户端(而非 `requests`)发送绕过 Host 验证的畸形请求:**重复的 `Host` header**、**绝对 URI (absolute-URI) 请求行**、**缩进 (折叠行) header** 以及 host 覆盖。
- **确认的 Web 缓存中毒**:添加唯一的 cache-buster,通过 unkeyed header 发送中毒请求,然后*不带*该 header 重新请求相同的 URL。存活的标记确认该响应已被缓存并提供给其他用户,同时会报告 `X-Cache`/`Age`/`CF-Cache-Status`。
- **基于 Host 的访问控制绕过**:检测在提供内部 host 或客户端 IP(`Host: localhost`、`X-Forwarded-For: 127.0.0.1` 等)时可访问的 401/403 endpoint,以及前端路径覆盖 header(`X-Original-URL`、`X-Rewrite-URL`)。
- **虚拟主机发现**:通过 `Host` header 针对内置或自定义字典暴力破解内部/隐藏的虚拟主机,标记状态、长度或页面标题与默认虚拟主机不同的 host。
- **真实的 OOB 确认**:将每次扫描的相关 ID 嵌入到带外 payload 中,并在提供监听器导出 URL(`--oob-poll-url`)的情况下轮询它,以确认盲 SSRF 交互。适用于 interactsh、webhook.site、RequestBin、Burp Collaborator 导出和自定义 sink。
- **可直接复制的复现命令**:每个发现都包含一个可直接运行的复现命令——针对 header/参数问题的 `curl` 命令,以及针对原始绕过的 `printf | ncat` / `openssl s_client` 网络层命令。
- **SSRF 检测**:结合响应时间偏差、内部目标指示符和 header 异常,通过加权评分模型减少误报。
- **Open Redirect 检测**:标记其 `Location` host 与注入的 Host 值匹配的重定向。
- **URL 参数 SSRF**:通过基线差异对比,针对内部目标探测常见参数(`url`、`next`、`redirect` 等)。
- **OOB 关联**:接受一个 `--oob` 域名,将其作为唯一子域嵌入到 payload 中,以便在您自己的 collaborator/listener 上关联交互。
- **多线程扫描**:使用具有界限的 `ThreadPoolExecutor`,支持连接池和自动重试。
- **灵活的请求**:可配置的 HTTP 方法、每请求超时、自定义 header、上游 proxy 以及可选的 TLS 验证绕过。
- **可自定义的详细级别**:提供不同级别的详细程度以控制输出量。
- **可导出报告**:以 JSON 或 Markdown 格式保存结果,方便文档记录。
- **优雅的中断处理**:允许使用 `Ctrl+C` 中断并优雅退出,不会丢失数据。
## 安装说明
### 前置条件
- **Python 3.6** 或更高版本。
### 克隆仓库
```
git clone https://github.com/kabiri-labs/HostHeaderScanner.git
cd HostHeaderScanner
```
### 安装依赖
使用 `pip` 安装所需的 Python 包:
```
pip install -r requirements.txt
```
或者,单独安装它们:
```
pip install requests tqdm colorama
```
## 使用说明
```
python host_header_scanner.py [options]
```
### 基本用法
```
python host_header_scanner.py http://example.com
```
### 选项
- ``:**(必需)** 要扫描的目标 URL。
- `--oob `:指定用于高级 SSRF 关联的带外 (OOB) 域名。
- `--oob-poll-url `:扫描后轮询的监听器导出 URL,用于确认 OOB 交互。
- `--wordlist ` 或 `-w`:用于发现的自定义虚拟主机字典(每行一个名称)。
- `--threads `:并发线程数(默认为 5)。必须在 1 到 20 之间。
- `--timeout `:单次请求超时时间(以秒为单位,默认为 10)。
- `--methods
- `:要测试的逗号分隔的 HTTP 方法(默认为 `GET`,例如 `GET,POST`)。
- `--header <"Name: Value">` 或 `-H`:添加自定义请求 header。可重复使用。
- `--proxy
标签:CISA项目, Host头注入, Python, Web安全, 域名侦查, 无后门, 蓝队分析, 逆向工具