harshweb-cyber/vulnerability-scanner
GitHub: harshweb-cyber/vulnerability-scanner
一套多线程 Python Web 漏洞扫描器,自动化检测并验证反射型 XSS 与 SQL 注入,支持 PDF 报告生成与 CTF flag 提取。
Stars: 0 | Forks: 0
# 🛡️ Web 漏洞扫描器套件
一组多线程 Python 扫描器,旨在自动化检测 Web 应用中的 **反射型跨站脚本攻击 (XSS)** 和 **SQL 注入 (SQLi)**。从简单的原型到支持 PDF 报告生成的命令行工具,该套件展示了在安全自动化和漏洞确认技术方面的进展。
## 📂 项目结构与文件
该仓库包含以下组件:
* [web-vulnerability.py](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/web-vulnerability.py) — **核心扫描器**。一款严格的漏洞扫描器,具备对反射 payload/SQL 错误的验证功能,并能生成 PDF 报告。
* [3-XSS-only.py](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/3-XSS-only.py) — **XSS 专用引擎**。高度可配置,完全专注于 XSS 检测,支持基于目录和文件的字典加载器。
* [2-Xss-Sqli.py](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/2-Xss-Sqli.py) — **CTF/主动扫描器**。支持自定义参数,可保存 HTML 响应页面,并基于正则表达式捕获 flag (`FLAG{...}`)。
* [1-Xss-Sqli.py](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/1-Xss-Sqli.py) — **原型脚本**。极简的多线程脚本,演示了 SQLi/XSS 请求的基础概念。
* [xss-payload-list.txt](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/xss-payload-list.txt) — **海量 XSS 字典** (~462 KB),包含数以千计的 fuzzing payload,用于绕过 WAF 和过滤器。
* [sqli-payload.txt](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/sqli-payload.txt) — **SQL 注入字典**,包含标准语法错误、基于 Union 和布尔型的注入查询。
* [scan_report.pdf](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/scan_report.pdf) — **示例 PDF 报告**,由 `web-vulnerability.py` 在扫描完成后自动生成。
## ⚙️ 核心引擎详情
### 1. `web-vulnerability.py` (生产级扫描与报告)
这是该套件中最成熟的脚本。
* **严格确认**:
* **SQLi**:将 HTML 正文与已知的数据库语法错误进行匹配。
* **XSS**:解码 HTML 响应实体,并验证确切的 payload 是否存在于其中,确保是真实的反射(无误报)。
* **PDF 生成**:利用 `reportlab` 编译一份专业的扫描报告 (`scan_report.pdf`),列出已确认的漏洞。
* **性能**:线程本地会话可防止 socket 资源耗尽,并加快请求速度。
### 2. `3-XSS-only.py` (反射型 XSS 专用工具)
一款严格专注于反射型 XSS 扫描的脚本。
* 支持加载包含 payload 列表的单个文件 (`--payload-file`) 或目录 (`--payload-dir`)。
* 提供稳健的字符编码反射验证(例如引号和括号的转义)。
* 将所有产生成功反射的响应记录并保存到 `xss_responses/` 文件夹中。
### 3. `2-Xss-Sqli.py` (CTF 助手)
一款针对 CTF (Capture The Flag) 实验室优化的可配置扫描器。
* 注入参数和 HTTP 方法 (`GET` / `POST`) 可以在配置变量中进行自定义。
* 内置正则表达式 `FLAG\{.*?\}` 可搜索响应的 HTML 文件,以自动提取并记录 flag。
## 🛠️ 前置条件与安装
要运行完整的套件,请安装脚本导入中列出的依赖项(主要是 `requests` 和 `reportlab`):
```
pip install requests reportlab
```
## 🚀 使用指南
### A. 核心扫描器 (`web-vulnerability.py`)
通过提供 URL、目标参数以及可选的自定义 payload 列表来运行核心扫描器:
```
# 使用默认内置 payloads 运行
python web-vulnerability.py --url "http://example.com/search.php" --param q
# 使用自定义 SQLi 和 XSS 文件运行
python web-vulnerability.py --url "http://example.com/search.php" --param q --xss-file xss-payload-list.txt --sqli-file sqli-payload.txt
```
完成后,该工具会将结果打印到终端,并输出 [scan_report.pdf](file:///C:/Users/HARSH/Music/python-Practice/vulnerability-Scanner/scan_report.pdf)。
### B. 反射型 XSS 专用工具 (`3-XSS-only.py`)
使用字典目录或文件运行 XSS 专用工具:
```
# 使用标准内置 payloads 扫描
python 3-XSS-only.py --url "http://example.com/profile.php" --param name
# 使用多个 payload 文件和 workers 扫描
python 3-XSS-only.py --url "http://example.com/profile.php" --param name --payload-file xss-payload-list.txt --workers 15
```
### C. CTF 助手 (`2-Xss-Sqli.py`)
在文件顶部配置目标 URL 和参数选项,然后执行:
```
python 2-Xss-Sqli.py
```
## 🛡️ 漏洞检测机制
### SQL 注入 (SQLi)
扫描器针对参数进行测试,并查找是否匹配以下错误:
* `SQL syntax`, `MySQL server`, `syntax error`, `Unclosed quotation mark`, `pg_query()`, `SQLSTATE` 等。
### 反射型 XSS
扫描器注入 Javascript 触发器,并验证它们是否在目标 DOM 中被安全地反射。在进行字符串比较之前,它会(使用 `html.unescape`)解码 HTML 实体,以识别输入是否已被目标应用服务器处理。
## ⚖️ 免责声明
标签:CISA项目, DOE合作, MIT 许可证, Python, SQL注入检测, Web安全, XSS检测, 加密, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具