Senaraufi/Web-Vulnerability-Scanner
GitHub: Senaraufi/Web-Vulnerability-Scanner
一款轻量级的 Python Web 安全扫描器,通过自动爬取和分析来检测 XSS、SQL 注入、敏感目录暴露等常见漏洞并生成报告。
Stars: 0 | Forks: 0
# WebVuln Scanner
一款使用 Python 构建的专业级 Web 安全漏洞扫描器。你可以将其视为一个迷你版的 Burp Suite —— 它能够爬取网站、检测安全问题,并生成美观的报告。


## 功能
- **智能爬虫** - 基于 BFS 的 URL 发现,支持深度控制、表单提取和 robots.txt 支持
- **安全标头分析** - 检查是否缺失 CSP、HSTS、X-Frame-Options 等
- **目录暴露检测** - 查找管理后台、备份文件、.git 文件夹、配置文件
- **XSS 检测** - 测试参数和表单中的反射型跨站脚本攻击
- **SQL 注入检测** - 基于报错、基于布尔和基于时间的 SQLi 测试
- **精美报告** - 包含风险评分的专业 JSON 和 HTML 报告
## 快速入门
### 安装说明
```
# 克隆 repository
cd WebVuln-scanner
# 安装 dependencies
pip install -r requirements.txt
```
### 基本用法
```
# 使用默认设置进行完整扫描
python scanner.py --url https://example.com
# 增加 crawl 深度进行深度扫描
python scanner.py --url https://example.com --depth 3
# 仅 header 快速扫描
python scanner.py --url https://example.com --scan-type headers
# 仅目录扫描
python scanner.py --url https://example.com --scan-type dirs
# 多种扫描类型
python scanner.py --url https://example.com --scan-type headers,dirs,xss
```
### 命令行选项
| 选项 | 描述 | 默认值 |
|--------|-------------|---------|
| `-u, --url` | 要扫描的目标 URL(必填) | - |
| `-d, --depth` | 爬取深度 | 2 |
| `-t, --scan-type` | 扫描类型: all, headers, dirs, xss, sqli | all |
| `-o, --output` | 输出格式: json, html, all, none | all |
| `--output-dir` | 报告的输出目录 | . |
| `--no-crawl` | 跳过爬取,仅扫描提供的 URL | false |
| `--threads` | 用于目录扫描的线程数 | 5 |
| `-q, --quiet` | 最简输出 | false |
## 扫描类型
### 安全标头 (`headers`)
检查基本的安全标头:
- Content-Security-Policy
- Strict-Transport-Security (HSTS)
- X-Frame-Options
- X-Content-Type-Options
- X-XSS-Protection
- Referrer-Policy
- Permissions-Policy
### 目录暴露 (`dirs`)
扫描暴露的敏感路径:
- 管理后台 (`/admin`, `/wp-admin`, `/phpmyadmin`)
- 版本控制 (`.git`, `.svn`)
- 配置文件 (`.env`, `config.php`, `web.config`)
- 备份文件 (`*.bak`, `*.sql`, `backup.*`)
- 调试 endpoint (`/phpinfo.php`, `/debug`)
### XSS 检测 (`xss`)
测试反射型跨站脚本攻击:
- URL 参数注入
- 表单字段注入
- 多种 payload 变体
- 结合上下文的检测
### SQL 注入 (`sqli`)
测试 SQL 注入漏洞:
- 基于报错的检测
- 基于布尔的检测
- 基于时间的盲注检测
- 常见错误模式匹配
## 📊 示例输出
```
╔══════════════════════════════════════════════════════════════╗
║ WEBVULN - Web Security Vulnerability Scanner ║
╚══════════════════════════════════════════════════════════════╝
[Phase 1/5] Crawling Target
==================================================
[+] Crawling (0/2): https://example.com
[+] Crawling (1/2): https://example.com/login
[Phase 2/5] Analyzing Security Headers
==================================================
[*] Found 5 header issues
[Phase 3/5] Scanning for Exposed Directories
==================================================
[+] Found: /.git/config (200) - CRITICAL
[+] Found: /admin (403) - HIGH
============================================================
SCAN SUMMARY
============================================================
Target: https://example.com
Scan Time: 2024-01-15 14:30:22
RISK LEVEL: HIGH
Findings Breakdown:
⚫ Critical: 1
🔴 High: 3
🟡 Medium: 5
🔵 Low: 2
============================================================
```
## 项目结构
```
WebVuln-scanner/
├── scanner.py # Main entry point
├── config.py # Configuration and payloads
├── requirements.txt # Python dependencies
├── crawler/
│ ├── __init__.py
│ ├── crawler.py # URL crawler
│ └── utils.py # URL utilities
├── analyzers/
│ ├── __init__.py
│ ├── headers.py # Security headers analyzer
│ ├── directories.py # Directory scanner
│ ├── xss.py # XSS detector
│ └── sqli.py # SQLi detector
└── reports/
├── __init__.py
├── generator.py # Report generator
└── templates/
└── report.html # HTML report template
```
## 测试
为了进行安全的测试,请使用故意设计为存在漏洞的应用程序:
```
# Acunetix 测试站点(允许合法扫描)
python scanner.py --url http://testphp.vulnweb.com --depth 2
# OWASP WebGoat(本地运行)
python scanner.py --url http://localhost:8080/WebGoat
```
## 法律免责声明
**此工具仅供授权的安全测试使用。**
- 仅扫描您拥有或获得明确书面测试许可的系统
- 未经授权的扫描可能违反计算机欺诈和滥用法
- 开发者不对滥用此工具的行为负责
- 在进行安全测试之前,请务必获得适当的授权
## 许可证
MIT 许可证 - 详情请参阅 LICENSE 文件。
用 ❤️ 为安全社区构建
标签:BeEF, CISA项目, Python, SQL注入检测, Web安全, XSS检测, 加密, 多模态安全, 密码管理, 文档结构分析, 无后门, 漏洞扫描器, 爬虫, 蓝队分析, 逆向工具