raghubirrajmahato15/HackDev-WebScan
GitHub: raghubirrajmahato15/HackDev-WebScan
一款 Python 编写的 Web 应用漏洞扫描器,可自动检测 XSS、SQL 注入特征、开放重定向和缺失安全 header,支持多目标批量扫描与结构化 JSON 输出。
Stars: 0 | Forks: 0
# HackDev-WebScan
用于检测 XSS、SQLi 特征、开放重定向和缺失安全 header 的 Web 应用漏洞扫描器。它是 **HackDev** 网络安全工具包的一部分。`HackDev-WebScan` 会获取目标 URL(或 URL 列表),审计其 HTTP 响应中缺失的安全 header,并使用无害的标记 payload 探测每个查询参数,以检测反射型 XSS、指示 SQL 注入的常见数据库错误特征,以及开放重定向行为——所有这些都支持可配置的并发、速率限制和结构化的 JSON 输出,方便通过管道传递给其他工具。
## 功能
- **安全 header 审计** — 标记缺失的 `Content-Security-Policy`、`Strict-Transport-Security`、`X-Frame-Options`、`X-Content-Type-Options` 和 `Referrer-Policy`。
- **反射型 XSS 探测** — 将无害的标记 payload(``、SVG `onload` 处理程序等)注入查询参数中,并检测响应主体中是否未经转义地反射了这些内容,同时提供证据片段。
- **SQLi 特征探测** — 注入常见的 SQL 注入触发字符(`'`、`''`、`' OR '1'='1` 等),并将响应与内置的 MySQL、PostgreSQL、MSSQL、SQLite 和 Oracle 错误特征库进行匹配。
- **开放重定向探测** — 自动检测类似重定向的参数(`redirect`、`url`、`next`、`return`、`dest` 等)或接受显式的参数列表,然后通过 `Location` header 或跟随一次重定向跳转后的最终 URL,检查应用是否允许跳转至外部测试域名。
- **多目标扫描** — 扫描单个 URL 或通过 `--url-list` 扫描包含大量 URL 的整个文件。
- **并发 + 速率限制** — 基于 `ThreadPoolExecutor` 的并发,配合简单的基于休眠的节流机制,以保持对目标站点的礼貌请求。
- **结构化发现** — 每个发现都是一个字典,包含 `url`、`type`、`severity`、`param`、`payload` 和 `evidence`,可随时用于 JSON 输出和下游工具处理。
- **文本或 JSON 输出** — 提供按严重性分组、人类可读的文本报告,或者带有统计摘要的完整 JSON payload。
## 安装
```
git clone https://github.com/raghubirrajmahato15/HackDev-WebScan.git
cd HackDev-WebScan
pip install -r requirements.txt
```
需要 Python 3.10+。
## 用法
扫描带有查询参数的单个 URL(自动从 URL 中检测参数):
```
python webscan.py "https://example.com/search?q=test&redirect=/home"
```
使用显式参数进行扫描,并将 JSON 输出写入文件:
```
python webscan.py "https://example.com/profile?id=1" --params id,ref --format json -o results.json
```
从文件中扫描 URL 列表,开启详细日志记录、使用 16 个线程并进行速率限制:
```
python webscan.py --url-list targets.txt -v --threads 16 --rate 5 --timeout 15
```
`targets.txt` 示例:
```
https://example.com/search?q=test
https://example.com/redirect?next=/dashboard
```
## CLI 参数参考
| 参数 | 描述 | 默认值 |
|---|---|---|
| `target` | 要扫描的目标 URL(位置参数,与 `--url-list` 互斥) | — |
| `--url-list` | 包含目标 URL 的文件路径(每行一个) | — |
| `--params` | 以逗号分隔的要测试的参数名列表(覆盖从 URL 的自动检测) | 自动检测 |
| `-o`, `--output` | 将输出写入此文件而不是 stdout | stdout |
| `--format` | 输出格式:`text` 或 `json` | `text` |
| `-v`, `--verbose` | 启用详细(debug)日志记录 | 关闭 |
| `--threads` | 并发级别(工作线程数) | `8` |
| `--timeout` | 每个请求的超时时间(秒) | `10` |
| `--rate` | 所有线程每秒的最大请求数,`0` = 不限制 | `0` |
退出代码:`0` = 扫描完成且未发现漏洞,`1` = 发生致命错误(例如未提供目标),`2` = 扫描完成并报告了发现的漏洞。
## 法律声明
此工具仅限**用于授权的安全测试**——针对您拥有的系统,或您已获得明确书面测试许可的系统。未经授权对系统运行漏洞探测(XSS/SQLi 注入、header 枚举、重定向测试)可能会违反您所在司法管辖区的计算机滥用法律。作者和贡献者对因滥用此工具或由此造成的损害不承担任何责任。请始终在约定的授权范围或漏洞赏金计划的范围内进行操作。
标签:CISA项目, Python, Web安全, 加密, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具