rohit-1006/Web-Vulnerability-Scanner
GitHub: rohit-1006/Web-Vulnerability-Scanner
基于 Python 的异步 Web 漏洞扫描器,通过爬取目标应用检测 SQL 注入、XSS 和 CSRF 漏洞并生成包含 PoC 的结构化报告。
Stars: 0 | Forks: 0
# Web 漏洞扫描器
一个用 Python 构建的异步、多模块 Web 漏洞扫描器。检测爬取的 Web 应用程序中的 SQL Injection、Cross-Site Scripting (XSS) 和 Cross-Site Request Forgery (CSRF) 漏洞,提供结构化报告和完整的概念验证 (PoC) 捕获。
## 目录
- [概述](#overview)
- [安装说明](#installation)
- [使用方法](#usage)
- [扫描模块](#scan-modules)
- [工作原理](#how-it-works)
- [项目结构](#project-structure)
- [演示](#demo)
- [故障排除](#troubleshooting)
- [贡献指南](#contributing)
- [更新日志](#changelog)
- [许可证](#license)
## 概述
该扫描器使用异步请求引擎进行高效并发扫描,自动化发现三个攻击面 —— SQL Injection、XSS 和 CSRF —— 的漏洞。它爬取目标应用程序,映射所有页面、表单和 URL 参数,运行配置的扫描模块,并生成包含 CWE ID、CVSS 评分、完整 HTTP 交换日志和修复建议的报告。
**核心功能:**
- 具有可配置深度、并发和范围的异步爬虫
- 技术指纹识别(WordPress、React、Django、Rails、ASP.NET 等)
- 针对 MySQL、PostgreSQL、MSSQL、Oracle 和 SQLite 的基于错误的 SQL 检测
- 通过随机金丝雀令牌 (canary tokens) 在多个注入上下文中进行 XSS 检测
- 对 POST 表单的 CSRF 分析,包括 SameSite cookie 属性检查
- HTML、JSON 和 Markdown 报告格式
- 代理支持和自定义 header/cookie 注入
- 基于会话的身份验证,用于扫描登录后页面
## 安装说明
### 环境要求
- Python 3.8 或更高版本
- pip
### 步骤
```
# 克隆仓库
git clone https://github.com/rohit-1006/Web-Vulnerability-Scanner.git
cd Web-Vulnerability-Scanner
# 创建并激活虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate # macOS / Linux
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
```
### 依赖项
| Package | Version | Purpose |
|---------|---------|---------|
| `aiohttp` | >=3.9.0 | Async HTTP client |
| `beautifulsoup4` | >=4.12.0 | HTML 解析和表单发现 |
| `lxml` | >=5.0.0 | XML/HTML parser backend |
## 使用方法
### 基本扫描
```
python3 main.py -u http://your-app.local
```
### 身份验证扫描
```
python3 main.py -u http://your-app.local \
--auth-url http://your-app.local/login \
--auth-data "username=admin&password=secret"
```
### 通过代理(例如 Burp Suite)
```
python3 main.py -u http://your-app.local --proxy http://127.0.0.1:8080 --no-verify-ssl
```
### 完整 CLI 参考
```
Usage: python3 main.py [OPTIONS]
Required:
-u, --url URL Target URL to scan
Crawl Options:
-d, --depth N Crawl depth (default: 3)
--max-pages N Maximum pages to crawl (default: 100)
--delay N Delay between requests in seconds (default: 0.5)
-c, --concurrency N Concurrent requests (default: 5)
--follow-external Follow links outside the target domain
Scan Modules:
--no-sqli Disable SQL Injection scanning
--no-xss Disable XSS scanning
--no-csrf Disable CSRF scanning
Authentication:
--auth-url URL Login page URL
--auth-data DATA POST data for login (e.g. username=admin&password=pass)
--cookie name=value Add a cookie (repeatable)
--header "Name: Value" Add a custom header (repeatable)
Output:
-o, --output FILENAME Output filename without extension (default: scan_report)
-f, --format {html,json,markdown} Report format (default: html)
-v, --verbose Enable debug logging
Network:
--proxy URL HTTP proxy (e.g. http://127.0.0.1:8080)
--no-verify-ssl Disable SSL certificate verification
```
## 扫描模块
### SQL Injection
检测 URL 参数和表单字段中基于错误的 SQL 注入。Payload 被提交到每个注入点,并根据以下数据库后端的错误模式匹配响应:
- MySQL / MariaDB
- PostgreSQL
- Microsoft SQL Server
- Oracle
- SQLite
检测方法包括单/双引号探测、`ORDER BY` 枚举、`UNION SELECT` 注入和时间延迟堆叠 Payload。
### XSS (Cross-Site Scripting)
使用随机金丝雀令牌 (canary tokens) 唯一标识每次注入尝试的反射。测试以下上下文:
| Context | Example |
|---------|---------|
| HTML body | `` |
| Event handler | `

` |
| SVG element | `
标签:BeEF, C2日志可视化, CISA项目, CSRF检测, CVE/CWE, DOE合作, Python, SQL注入检测, Web安全, XSS检测, 异步编程, 指纹识别, 攻击路径可视化, 无后门, 爬虫, 网络安全, 蓝队分析, 逆向工具, 隐私保护, 黑客工具