Ricci-ricci/Web_Vuln_scanner
GitHub: Ricci-ricci/Web_Vuln_scanner
一个面向教育与作品集展示的 Python Web 漏洞扫描器,自动化发现常见安全缺陷并生成结构化报告。
Stars: 0 | Forks: 0
# 🔍 Web 漏洞扫描器
一个用于教育目的和作品集展示的 Python 网络漏洞扫描器。
它会自动爬取目标网络应用并检查常见的安全配置错误
和漏洞,生成详细的发现报告。
## ⚠️ 法律声明
## 📖 概述
现代网络应用复杂且经常带有容易被忽视的安全缺陷——
缺失的 HTTP 头部、未验证的用户输入、过时的 TLS 配置等。该扫描器
自动化检测这些缺陷,以便开发者和安全从业者在恶意行为者利用之前识别并修复它们。
本项目作为作品集,用于展示以下方面的实践知识:
- Web 应用安全概念(OWASP Top 10)
- Python 软件架构与设计模式
- HTTP 内部机制与浏览器安全机制
- 自动化测试与报告流水线
## ✨ 功能
| 模块 | 检查内容 |
|---|---|
| **安全头部** | 检测缺失的头部,例如 `Content-Security-Policy`、`X-Frame-Options`、`Strict-Transport-Security` 等。 |
| **XSS 检测** | 向 GET/POST 参数和表单字段注入载荷以检测反射型跨站脚本。 |
| **SQL 注入** | 使用基于错误和基于布尔的载荷测试输入,以暴露潜在的 SQL 注入漏洞。 |
| **开放重定向** | 识别将用户盲目重定向到任意外部 URL 的参数。 |
| **目录遍历** | 发现暴露的目录索引,以揭示服务器文件结构。 |
| **SSL/TLS 审计** | 检查证书有效性、过期情况以及协议版本弱点。 |
额外能力:
- **内置爬虫** — 自动爬取目标以发现页面、链接和表单,然后再进行扫描。
- **严重等级** — 每个发现项被评定为 `低`、`中`、`高` 或 `严重`。
- **多种输出格式** — 结果可在终端显示或导出为 JSON 和 HTML。
- **模块化架构** — 新的漏洞模块可以以最少的样板代码添加。
## 🏗️ 架构
项目围绕一个简单的流水线组织:
```
CLI → Engine → Spider → Modules → Reporter
```
1. **CLI** — 解析用户参数(目标 URL、要运行的模块、输出格式等)
2. **引擎** — 协调扫描:初始化 HTTP 客户端,运行爬虫,然后分发每个模块。
3. **爬虫** — 爬取目标应用以构建 URL 列表、查询参数和 HTML 表单。
4. **模块** — 每个模块接收爬取的端点并独立测试特定类别的漏洞。
5. **报告器** — 聚合所有模块的结果并渲染到终端或导出文件。
每个模块继承自通用的 `BaseModule` 接口,使系统易于扩展。一个
由任何模块生成的发现项始终包含:受影响的 URL、严重等级、问题描述、
观察到的证据(载荷、头部值等)以及建议的修复步骤。
## 🛠️ 技术栈
| 层 | 技术 |
|---|---|
| 语言 | Python 3.11+ |
| HTTP 客户端 | `httpx`(异步) |
| HTML 解析 | `beautifulsoup4` |
| CLI | `typer` + `rich` |
| 数据模型 | `pydantic` v2 |
| HTML 报告 | `jinja2` |
| 测试 | `pytest` + `pytest-httpx` |
## 🚀 使用方法
```
# 使用所有模块扫描目标
python -m scanner scan https://example.com
# 仅使用特定模块扫描
python -m scanner scan https://example.com --modules xss,sqli,headers
# 将结果导出为 JSON
python -m scanner scan https://example.com --output json --report reports/result.json
# 将结果导出为 HTML
python -m scanner scan https://example.com --output html --report reports/result.html
```
## 📁 项目结构
```
web_vuln_scanner/
├── scanner/
│ ├── cli.py # Entry point
│ ├── core/
│ │ ├── engine.py # Scan orchestrator
│ │ ├── http_client.py # HTTP session wrapper
│ │ └── target.py # Target model
│ ├── crawler/
│ │ └── spider.py # Link and form crawler
│ ├── modules/
│ │ ├── base.py # BaseModule interface
│ │ ├── xss.py
│ │ ├── sqli.py
│ │ ├── headers.py
│ │ ├── open_redirect.py
│ │ ├── directory_listing.py
│ │ └── ssl_tls.py
│ ├── report/
│ │ ├── models.py # Finding / Report dataclasses
│ │ ├── console.py # Rich terminal output
│ │ └── exporter.py # JSON / HTML export
│ └── utils/
│ ├── logger.py
│ └── helpers.py
├── tests/
├── reports/
├── requirements.txt
└── README.md
```
## ⚙️ 安装
```
git clone https://github.com/your-username/web_vuln_scanner.git
cd web_vuln_scanner
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
## 📄 许可证
本项目采用 MIT 许可证。详细信息请参阅 [LICENSE](LICENSE) 文件。
标签:API密钥检测, HTTP安全, OWASP Top 10, Python, SEO扫描, SSL/TLS审计, Web安全扫描器, Web界面, XSS, 内存取证对抗, 威胁情报, 安全报告, 安全标头检测, 安全规则引擎, 开发者工具, 开放重定向, 无后门, 漏洞情报, 网络安全, 自动化URL分析, 输入验证, 运行时操纵, 隐私保护