AkashAswal5/web-vulnerability-scanner

GitHub: AkashAswal5/web-vulnerability-scanner

一款基于 Flask 的 Web 漏洞扫描器,支持 SQL 注入、XSS、安全 Headers 分析和端口扫描,用于安全教育与授权测试。

Stars: 0 | Forks: 0

# 🔒 专业 Web 漏洞扫描器 [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![Flask](https://img.shields.io/badge/flask-3.0.0-green.svg)](https://flask.palletsprojects.com/) [![License](https://img.shields.io/badge/license-Educational-orange.svg)](LICENSE) [![Security](https://img.shields.io/badge/security-professional-red.svg)](README.md) 一款**专业级**的 Web 漏洞扫描器,旨在识别 Web 应用程序中的安全弱点。采用企业级架构构建,具备全面的日志记录、速率限制和现代安全实践。 ## ✨ 专业功能 ### 🔐 **高级安全扫描** - **SQL 注入检测** - 18+ 种 payload 变体,支持错误模式匹配 - **跨站脚本攻击 (XSS)** - 14+ 种 XSS payload 测试,支持上下文分析 - **安全 Headers 分析** - 全面的 header 检查与风险评分 - **端口扫描** - 多线程端口检测与服务识别 - **漏洞风险评估** - 自动风险等级分类(低/中/高/严重) ### 🛡️ **企业级安全** - ✅ 速率限制(每天 200 次,每小时 50 次) - ✅ CSRF 防护 - ✅ 安全 headers(CSP、HSTS、X-Frame-Options 等) - ✅ 基于 secure cookies 的 session 管理 - ✅ 密码强度验证 - ✅ 输入清理与验证 - ✅ 全面的审计日志 - ✅ 错误处理与监控 ### 📊 **专业架构** - 采用 blueprints 的现代 MVC 模式 - 基于 SQLAlchemy 的数据库 ORM - RESTful API 设计 - 全面的日志系统 - 基于环境的配置 - 模块化且可扩展的代码库 ### 👤 **用户管理** - 安全注册与密码哈希 (PBKDF2-SHA256) - 基于 session 的身份验证 - 带统计信息的用户控制台 - 扫描历史记录跟踪 - 学习资源库 ## 🚀 快速开始 ### 一键安装 ``` git clone https://github.com/AkashAswal5/web-vulnerability-scanner.git cd web-vulnerability-scanner chmod +x setup.sh && ./setup.sh ./run.sh ``` 访问 **http://localhost:5000** 🎉 ## ⚠️ 重要提示:Python 版本 **要求**:Python 3.9 - 3.13 **❌ 不兼容**:Python 3.14+(包含破坏性更改) **✅ 推荐**:Python 3.12 如果您正在使用 Python 3.14,请参阅 [PYTHON_VERSION_FIX.md](PYTHON_VERSION_FIX.md) 获取指南。 ## 📋 详细安装说明 ### 前置条件 - **Python 3.9, 3.10, 3.11, 3.12 或 3.13**(推荐 Python 3.12) - pip 包管理器 - 虚拟环境(推荐) ### 检查您的 Python 版本 ``` python3 --version # 应显示 3.9.x 至 3.13.x # 如果为 3.14+,请参见 PYTHON_VERSION_FIX.md ``` ### 分步设置 1. **克隆代码库** ``` git clone https://github.com/AkashAswal5/web-vulnerability-scanner.git cd web-vulnerability-scanner ``` 2. **创建虚拟环境** ``` python3 -m venv venv # 在 macOS/Linux 上激活 source venv/bin/activate # 在 Windows 上激活 venv\Scripts\activate ``` 3. **安装依赖项** ``` pip install --upgrade pip pip install -r requirements.txt ``` 4. **配置环境** ``` cp .env.example .env # 使用你的设置编辑 .env nano .env # or use any text editor ``` 5. **运行应用程序** ``` cd functionailty python app.py ``` 应用程序将可通过 `http://localhost:5000` 访问 ## 🎯 使用指南 ### 首次设置 1. **注册账号** - 访问 http://localhost:5000 - 点击“注册” - 创建用户名和强密码(至少 8 个字符,包含大写字母、小写字母、数字、特殊字符) - 提交注册 2. **登录** - 使用您的凭据登录 - 您将被重定向到控制台 ### 执行扫描 #### SQL 注入扫描 ``` 1. Go to Dashboard → SQL Injection Scanner 2. Enter target URL (e.g., http://testphp.vulnweb.com/artists.php?artist=1) 3. Click "Scan" 4. Review detailed results with vulnerabilities found ``` #### XSS 漏洞扫描 ``` 1. Go to Dashboard → XSS Scanner 2. Enter target URL 3. Click "Scan" 4. Review XSS vulnerabilities with payload details ``` #### 安全 Headers 分析 ``` 1. Go to Dashboard → Header Scanner 2. Enter target URL (e.g., https://example.com) 3. Click "Scan" 4. Review missing/present security headers with recommendations ``` #### 端口扫描 ``` 1. Go to Dashboard → Port Scanner 2. Enter target IP or hostname 3. Click "Scan" 4. Review open ports and services ``` ## 📁 项目结构 ``` web-vulnerability-scanner/ ├── functionailty/ # Main application │ ├── app.py # Main Flask application (Enhanced) │ ├── config.py # Configuration management │ ├── models.py # Database models │ ├── blueprints/ # Application blueprints │ │ ├── auth.py # Authentication │ │ └── scanner.py # Scanning routes │ ├── utils/ # Utility modules │ │ ├── security_scanner.py # Basic scanners │ │ ├── advanced_scanner.py # Advanced scanners │ │ └── validators.py # Input validation │ ├── templates/ # HTML templates │ │ ├── errors/ # Error pages (404, 500, 429) │ │ ├── auth/ # Auth templates │ │ └── scanner/ # Scanner templates │ ├── static/ # Static files (CSS, JS) │ └── logs/ # Application logs ├── requirements.txt # Python dependencies ├── .env.example # Environment template ├── .gitignore # Git ignore rules ├── setup.sh # Automated setup ├── run.sh # Run script └── README.md # This file ``` ## ⚙️ 配置 ### 环境变量 (.env) ``` # Flask 配置 FLASK_SECRET_KEY=your-super-secret-key-here FLASK_ENV=development # or production FLASK_HOST=0.0.0.0 FLASK_PORT=5000 # 数据库 DATABASE_URI=sqlite:///scanner.db # 安全性 SESSION_COOKIE_SECURE=False # True for HTTPS only RATELIMIT_ENABLED=True # 日志 LOG_LEVEL=INFO LOG_FILE=logs/scanner.log ``` ### 生产环境部署 对于生产环境: 1. 设置 `FLASK_ENV=production` 2. 将 `FLASK_SECRET_KEY` 更改为强随机值 3. 启用 `SESSION_COOKIE_SECURE=True`(需要 HTTPS) 4. 使用生产级数据库(PostgreSQL、MySQL) 5. 设置反向代理(nginx、Apache) 6. 配置 SSL/TLS 证书 7. 启用防火墙和安全组 8. 设置监控和告警 ## 🧪 测试 ### 安全测试目标 **仅扫描您拥有或已获授权测试的系统!** 安全测试网站: - http://testphp.vulnweb.com/ - http://demo.testfire.net/ - https://httpbin.org/ 示例命令: ``` # SQL Injection 测试 URL: http://testphp.vulnweb.com/artists.php?artist=1 # Security Headers 测试 URL: https://example.com # Port Scan 测试(仅限 localhost) Target: 127.0.0.1 ``` ## 📊 功能明细 | 功能 | 状态 | 描述 | |---------|--------|-------------| | SQL 注入扫描器 | ✅ | 18+ 种 payload,错误检测 | | XSS 扫描器 | ✅ | 14+ 种 payload,表单分析 | | 安全 Headers | ✅ | 7 个关键 headers + 评分 | | 端口扫描器 | ✅ | 多线程,服务检测 | | 速率限制 | ✅ | 每 IP 每天 200 次,每小时 50 次 | | 身份验证 | ✅ | 安全密码哈希 | | 审计日志 | ✅ | 全面的活动日志 | | 错误处理 | ✅ | 专业的错误页面 | | 输入验证 | ✅ | URL、IP、用户名、密码 | | Session 安全 | ✅ | Secure cookies,CSRF 防护 | ## 🔒 安全最佳实践 此扫描器实现了: 1. **OWASP Top 10 防护** - SQL 注入防御 - XSS 防护 - CSRF token - 安全 headers - 身份验证控制 2. **安全编码** - 参数化查询 - 输入验证 - 输出编码 - 密码哈希 - Session 管理 3. **基础设施安全** - 速率限制 - 日志与监控 - 错误处理 - 安全 headers - Cookie 安全 ## ⚠️ 法律免责声明 **重要提示**:此工具仅供**教育目的**和**授权的安全测试**使用。 - ✅ 仅扫描您拥有的系统 - ✅ 在扫描前获得明确的书面授权 - ✅ 遵循负责任的漏洞披露实践 - ✅ 遵守所有法律法规 - ❌ 严禁未经授权进行扫描 - ❌ 严禁用于恶意目的 **未经授权的扫描**在您所在的司法管辖区**可能是违法的**。开发者不对滥用行为承担任何责任。 ## 🐛 故障排除 ### 常见问题 **问题**:`ModuleNotFoundError` ``` # 解决方案 source venv/bin/activate pip install -r requirements.txt ``` **问题**:端口 5000 已被占用 ``` # 解决方案:编辑 .env FLASK_PORT=5001 ``` **问题**:数据库错误 ``` # 解决方案 cd functionailty rm instance/scanner.db python app.py # Database will be recreated ``` **问题**:权限被拒绝 ``` # 解决方案 chmod +x setup.sh run.sh ``` ## 📚 进阶文档 - [配置指南](docs/CONFIGURATION.md) - 详细的配置选项 - [API 文档](docs/API.md) - API endpoint 与用法 - [架构](docs/ARCHITECTURE.md) - 系统设计与架构 - [安全指南](docs/SECURITY.md) - 安全实现细节 ## 📝 更新日志 请参阅 [CHANGELOG.md](CHANGELOG.md) 了解版本历史和更新。 ## 👤 作者 **Akash Aswal** - GitHub: [@AkashAswal5](https://github.com/AkashAswal5) - 项目: [Web 漏洞扫描器](https://github.com/AkashAswal5/web-vulnerability-scanner) ## 📄 许可证 本项目仅用于**教育目的**。 **用心 ❤️ 为安全学习而打造** 切记:**负责任地使用。合乎道德地扫描。保持合法。** 🔐
标签:CISA项目, DOE合作, Flask, Python, SQL注入检测, Web漏洞扫描器, XSS检测, 数据统计, 无后门, 端口扫描, 逆向工具