K921-cyber/Web_vulnerability_scanner
GitHub: K921-cyber/Web_vulnerability_scanner
一款基于 Flask 构建的教育型 Web 漏洞扫描器,主要用于快速检测 SQL 注入、XSS 等常见漏洞并生成 PDF 报告。
Stars: 7 | Forks: 1
# 🔒 Web 漏洞扫描器
一款基于 **Python** 和 **Flask** 构建的适合初学者的 Web 漏洞扫描器。
该工具专为**教育目的**而设计,旨在帮助开发者和安全爱好者理解并识别常见的 Web 漏洞。
该扫描器可检测:
- SQL 注入
- 跨站脚本攻击
- CSRF 配置错误
- 开放重定向漏洞
扫描结果将通过**简洁的 Flask Web 界面**展示,并可导出为**可下载的 PDF 报告**。
## 🏗️ 系统架构
```
flowchart TD
A[User] --> B[Flask Web Interface / CLI]
B --> C[Scanner Engine]
C --> D[SQL Injection Module]
C --> E[XSS Detection Module]
C --> F[CSRF Protection Module]
C --> G[Open Redirect Module]
D --> H[Result Aggregator]
E --> H
F --> H
G --> H
H --> I[Severity Classification]
I --> J[OWASP Top 10 Mapping]
J --> K[PDF Report Generator]
K --> L[Display Results to User]
```
*图:典型的漏洞扫描器系统架构* :contentReference[oaicite:1]{index=1}
**架构流程:**
用户 → Flask Web UI → 扫描引擎 → 漏洞模块 → 报告生成器
⚠️ **免责声明:**
本项目仅供**教育用途**。
请勿扫描您不拥有或未获得**明确书面授权**进行测试的网站。
作者对因使用本程序造成的任何误用或损害**概不负责**。
## 🖼️ 截图
### 🔹 扫描仪表盘
### 🔹 生成的 PDF 报告
## 🚀 功能特性
- ✅ **SQL 注入检测**
- ✅ **跨站脚本攻击检测**
- ✅ **CSRF 保护检查**
- ✅ **开放重定向检测**
- 📄 **自动生成 PDF 报告**
- 🌐 **简洁的 Flask Web 界面**
### 🔍 漏洞覆盖范围
| 漏洞类型 | 检测方法 | 严重程度 |
|-------------------|-----------------|----------|
| SQL 注入 | Payload 注入与错误匹配 | 高 |
| XSS | Payload 回显分析 | 高 |
| CSRF | 缺失 Token 检测 | 中 |
| 开放重定向 | 重定向参数测试 | 中 |
## 🛠️ 使用的技术
- **后端:** Python 3
- **Web 框架:** Flask
- **HTTP 请求:** Requests
- **HTML 解析:** BeautifulSoup4
- **PDF 生成:** ReportLab
- **前端:** HTML, CSS
### 🧱 技术栈
| 层级 | 技术 |
|------|-----------|
| 后端 | Python 3 |
| Web 框架 | Flask |
| HTTP 客户端 | Requests |
| HTML 解析器 | BeautifulSoup |
| 报告生成 | ReportLab |
| 前端 | HTML, CSS |
## 📂 项目结构
```
web-vulnerability-scanner/
│
├── app.py
├── scanner/
│ ├── sqli.py
│ ├── xss.py
│ ├── csrf.py
│ ├── open_redirect.py
│
├── templates/
│ └── index.html
├── static/
│ └── style.css
├── reports/
│ └── scan_report.pdf
├── docs/
│ └── images/
│ ├── system_architecture.png
│ ├── dashboard.png
│ ├── pdf_report.png
│ └── workflow.png
├── requirements.txt
└── README.md
```
## 📦 安装与使用
### 前置条件
- Python 3.6+
- pip
### 1️⃣ 克隆仓库
```
git clone https://github.com/K921-cyber/Web_vulnerability_scanner.git
cd web_vulnerability_scanner
```
## 2️⃣ 创建并激活虚拟环境
# Linux / macOS
```
python3 -m venv venv
source venv/bin/activate
```
# Windows
```
python -m venv venv
.\venv\Scripts\activate
```
## 3️⃣ 安装依赖
```
pip install -r requirements.txt
```
## 4️⃣ 运行应用
```
python app.py
```
打开浏览器并访问:
👉 http://127.0.0.1:5000
## 💡 工作原理
扫描器会抓取目标 URL,识别输入字段和 URL 参数,注入预定义的 Payload,并分析服务器响应以检测潜在的漏洞。
## 🔐 SQL 注入检测
```
payloads = ["'", "\"", "' OR 1=1--"]
for payload in payloads:
data[input_name] = payload
response = requests.post(url, data=data)
if "SQL syntax" in response.text:
return True
```
## 🧪 跨站脚本攻击检测
```
payload = ''
response = requests.post(url, data={field: payload})
if payload in response.text:
return True
```
## 🛡️ CSRF 保护检查
```
csrf_token = form.find("input", {"name": "csrf_token"})
if not csrf_token:
print("CSRF protection missing")
```
## 🛡️ CSRF 保护检查
```
csrf_token = form.find("input", {"name": "csrf_token"})
if not csrf_token:
print("CSRF protection missing")
```
## 🔁 开放重定向检测
```
test_url = f"{url}?redirect=http://example.com"
response = requests.get(test_url, allow_redirects=False)
if response.status_code in [301, 302]:
print("Open Redirect Vulnerability Found")
```
## 🔄 扫描器工作流程
```
Input URL
↓
Crawl Pages
↓
Inject Payloads
↓
Analyze Response
↓
Generate Report
```
### 🔹 生成的 PDF 报告
## 🚀 功能特性
- ✅ **SQL 注入检测**
- ✅ **跨站脚本攻击检测**
- ✅ **CSRF 保护检查**
- ✅ **开放重定向检测**
- 📄 **自动生成 PDF 报告**
- 🌐 **简洁的 Flask Web 界面**
### 🔍 漏洞覆盖范围
| 漏洞类型 | 检测方法 | 严重程度 |
|-------------------|-----------------|----------|
| SQL 注入 | Payload 注入与错误匹配 | 高 |
| XSS | Payload 回显分析 | 高 |
| CSRF | 缺失 Token 检测 | 中 |
| 开放重定向 | 重定向参数测试 | 中 |
## 🛠️ 使用的技术
- **后端:** Python 3
- **Web 框架:** Flask
- **HTTP 请求:** Requests
- **HTML 解析:** BeautifulSoup4
- **PDF 生成:** ReportLab
- **前端:** HTML, CSS
### 🧱 技术栈
| 层级 | 技术 |
|------|-----------|
| 后端 | Python 3 |
| Web 框架 | Flask |
| HTTP 客户端 | Requests |
| HTML 解析器 | BeautifulSoup |
| 报告生成 | ReportLab |
| 前端 | HTML, CSS |
## 📂 项目结构
```
web-vulnerability-scanner/
│
├── app.py
├── scanner/
│ ├── sqli.py
│ ├── xss.py
│ ├── csrf.py
│ ├── open_redirect.py
│
├── templates/
│ └── index.html
├── static/
│ └── style.css
├── reports/
│ └── scan_report.pdf
├── docs/
│ └── images/
│ ├── system_architecture.png
│ ├── dashboard.png
│ ├── pdf_report.png
│ └── workflow.png
├── requirements.txt
└── README.md
```
## 📦 安装与使用
### 前置条件
- Python 3.6+
- pip
### 1️⃣ 克隆仓库
```
git clone https://github.com/K921-cyber/Web_vulnerability_scanner.git
cd web_vulnerability_scanner
```
## 2️⃣ 创建并激活虚拟环境
# Linux / macOS
```
python3 -m venv venv
source venv/bin/activate
```
# Windows
```
python -m venv venv
.\venv\Scripts\activate
```
## 3️⃣ 安装依赖
```
pip install -r requirements.txt
```
## 4️⃣ 运行应用
```
python app.py
```
打开浏览器并访问:
👉 http://127.0.0.1:5000
## 💡 工作原理
扫描器会抓取目标 URL,识别输入字段和 URL 参数,注入预定义的 Payload,并分析服务器响应以检测潜在的漏洞。
## 🔐 SQL 注入检测
```
payloads = ["'", "\"", "' OR 1=1--"]
for payload in payloads:
data[input_name] = payload
response = requests.post(url, data=data)
if "SQL syntax" in response.text:
return True
```
## 🧪 跨站脚本攻击检测
```
payload = ''
response = requests.post(url, data={field: payload})
if payload in response.text:
return True
```
## 🛡️ CSRF 保护检查
```
csrf_token = form.find("input", {"name": "csrf_token"})
if not csrf_token:
print("CSRF protection missing")
```
## 🛡️ CSRF 保护检查
```
csrf_token = form.find("input", {"name": "csrf_token"})
if not csrf_token:
print("CSRF protection missing")
```
## 🔁 开放重定向检测
```
test_url = f"{url}?redirect=http://example.com"
response = requests.get(test_url, allow_redirects=False)
if response.status_code in [301, 302]:
print("Open Redirect Vulnerability Found")
```
## 🔄 扫描器工作流程
```
Input URL
↓
Crawl Pages
↓
Inject Payloads
↓
Analyze Response
↓
Generate Report
```
标签:CISA项目, CSRF漏洞, DOE合作, Flask开发, OWASP Top 10, PDF报告生成, Python安全工具, SQL注入检测, Web应用防火墙辅助, Web漏洞扫描器, XSS漏洞扫描, 代码安全, 代码生成, 字符串匹配, 开放重定向漏洞, 教育安全工具, 渗透测试工具, 漏洞扫描引擎, 漏洞枚举, 网站安全扫描, 网站风险评估, 网络安全, 跨站脚本攻击, 逆向工具, 隐私保护