Amirmuhammadmarvi/web-vuln-scanner
GitHub: Amirmuhammadmarvi/web-vuln-scanner
一款用于检测XSS和SQL注入漏洞的Python CLI工具。
Stars: 0 | Forks: 0
# 🔍 网络漏洞扫描器
**一个基于 CLI 的 Python 工具,用于检测 XSS 和 SQL 注入漏洞**
[](https://python.org)
[](LICENSE)
[]()
[]()
## 📋 概述
一个轻量级、模块化的安全工具,通过向 URL 参数中注入有效载荷并分析服务器响应来检测常见的网络漏洞。旨在展示实用的安全工具和现实世界的攻击模拟。
**支持检测:**
- ⚡ **XSS** (跨站脚本) — 通过有效载荷反射分析
- 💉 **SQL 注入** — 通过 MySQL、PostgreSQL、MSSQL、SQLite 和 Oracle 的数据库错误签名匹配
## ✨ 功能
- 🧩 **模块化架构** — 4 个独立的组件,易于扩展
- 📦 **外部有效载荷文件** — 30 多个真实世界的 XSS 和 SQLi 字符串,可完全自定义
- 🗄 **JSON 报告生成** — 自动保存带时间戳的审计跟踪
- 🖥 **干净的 CLI 界面** — 使用 `argparse` 构建,直观的标志
- 🔍 **多数据库 SQLi 检测** — MySQL、PostgreSQL、MSSQL、SQLite、Oracle 的错误签名
- ✅ **Burp Suite 验证** — 通过 Repeater 手动验证结果以减少误报
## 🗂 项目结构
```
web-vuln-scanner/
├── cli.py # Entry point — argument parsing and orchestration
├── scanner.py # Core scanning logic (XSS + SQLi detection)
├── reporter.py # Terminal output and JSON report generation
├── utils.py # HTTP requests and payload loading utilities
├── payloads/
│ ├── xss.txt # XSS payload list (30+ strings)
│ └── sqli.txt # SQL Injection payload list (30+ strings)
├── requirements.txt
└── README.md
```
## 🚀 入门
### 前置条件
- Python 3.8+
- pip
### 安装
```
git clone https://github.com/Amirmuhammadmarvi/web-vuln-scanner.git
cd web-vuln-scanner
pip install -r requirements.txt
```
## 💻 使用
**基本扫描:**
```
python3 cli.py --url "http://testsite.com/page?id=1"
```
**扫描并保存 JSON 报告:**
```
python3 cli.py --url "http://testsite.com/page?id=1" --report
```
**自定义有效载荷文件:**
```
python3 cli.py --url "http://testsite.com/page?id=1" \
--xss-payloads payloads/xss.txt \
--sqli-payloads payloads/sqli.txt \
--report
```
## 📊 示例输出
```
╔══════════════════════════════════════╗
║ Web Vulnerability Scanner ║
║ For Educational Use Only ║
╚══════════════════════════════════════╝
[*] Target: http://testsite.com/page?id=1
[*] Starting XSS scan...
[+] Loaded 30 payloads from payloads/xss.txt
[VULNERABLE] XSS detected →
[safe] Payload not reflected →
[*] Starting SQLi scan...
[+] Loaded 30 payloads from payloads/sqli.txt
[VULNERABLE] SQLi detected | signature: "you have an error in your sql syntax"
[safe] No error signature found → ' OR 1=1 --
══════════════════════════════════════════════
SCAN REPORT
══════════════════════════════════════════════
Target : http://testsite.com/page?id=1
Time : 2025-05-04 17:00:00
Total : 2 vulnerability(s) found
══════════════════════════════════════════════
[+] Report saved → reports/scan_20250504_170000.json
```
## ⚙️ 工作原理
```
URL Input
│
▼
Parse Parameters ──► For each parameter:
│
┌─────┴──────┐
▼ ▼
XSS Check SQLi Check
(reflection (error sig
analysis) matching)
│ │
└─────┬──────┘
▼
JSON Report Output
```
1. **解析** — 从目标 URL 中提取所有查询参数
2. **注入** — 将每个参数值替换为有效载荷文件中的有效载荷
3. **XSS 检查** — 如果有效载荷在响应体中反射出现 → 标记为漏洞
4. **SQLi 检查** — 扫描响应以查找已知的数据库错误字符串(MySQL、PostgreSQL、MSSQL、SQLite、Oracle)
5. **报告** — 将结果打印到终端;如果使用 `--report` 标志,则保存为带时间戳的 JSON 文件
## 🛡 验证方式
此工具的结果通过 **Burp Suite Repeater** 手动验证,以确认漏洞行为并消除误报,然后再进行报告。
## ⚠️ 法律免责声明
此工具仅用于 **教育目的和授权的安全测试**。
不要用于不属于您或您没有 **明确书面许可** 测试的系统。
未经授权的使用是非法和不道德的。作者对误用不承担任何责任。
**作者:[Amir Mohammad Marwi](https://amirmohammadmarwi.vercel.app)**
[](https://amirmohammadmarwi.vercel.app)
[](https://linkedin.com/in/amir-mohammad-marwi)
[](https://github.com/Amirmuhammadmarvi)
标签:JSON报告, Python 3.8+, SQL注入检测, Web安全, XSS检测, 响应分析, 攻击模拟, 文档结构分析, 模块化设计, 网络安全, 自动化修复, 蓝队分析, 逆向工具, 隐私保护, 驱动签名利用