# Vulnerability_scanner **Repository Path**: yulai_fenglinjing/Vulnerable ## Basic Information - **Project Name**: Vulnerability_scanner - **Description**: 智能化漏洞检测与攻击路径分析平台 ## 项目描述 全栈安全分析平台,集成漏洞扫描、攻击路径分析和智能风险评估,支持多种常见漏洞的自动化检测和修复建议生成。 - **Primary Language**: Python - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-10-22 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能化漏洞检测与攻击路径分析平台

项目Logo
构建状态 许可证 星标数

## 📋 项目概述 本项目是一个全功能安全分析平台,集成漏洞扫描、攻击路径分析和风险评估功能。系统采用机器学习技术对漏洞进行智能分类和风险评分,支持多种常见漏洞类型的自动化检测,并提供详细的修复建议。 ### 🔍 核心功能 - **全面的漏洞扫描**:支持SQL注入、XSS、命令注入、信息泄露等多种漏洞类型检测 - **攻击路径分析**:智能分析漏洞间的关联关系,构建潜在攻击链 - **风险评估引擎**:基于XGBoost机器学习模型进行精确风险评分 - **异步任务处理**:使用Celery+Redis实现高性能异步扫描任务处理 - **详细修复建议**:为每种漏洞提供针对性的修复方案 - **多靶场支持**:兼容OWASP WebGoat、Juice Shop等常见安全靶场 ## 🛠️ 技术架构 ### 后端技术栈 - **Web框架**: Flask 2.3.3 - **异步任务**: Celery 5.3.4 + Redis 5.0.1 - **数据库**: SQLite (支持MySQL扩展) - **机器学习**: XGBoost 2.0.3 + scikit-learn 1.3.0 - **HTTP客户端**: Requests 2.31.0 - **安全工具**: 自定义扫描引擎 ### 前端技术栈 - **框架**: Vue 3.4.21 - **UI组件**: Element Plus 2.7.2 - **图表可视化**: ECharts 5.4.3 + Chart.js 4.5.1 - **网络请求**: Axios 1.6.8 - **路由**: Vue Router 4.3.0 - **构建工具**: Vite 5.2.0 ## 📱 系统运行截图 ###登录 ![输入图片说明](loading%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202025-10-25%20021645.png) ### 仪表盘界面 ![输入图片说明](dashboard%E5%9B%BE%E7%89%87.png) ![输入图片说明](dashboard2%E5%9B%BE%E7%89%87.png) ### 漏洞扫描 ![漏洞扫描结果](screenshots/scan_results.png) ![输入图片说明](scan_list%E5%9B%BE%E7%89%87.png) ![输入图片说明](scan_history%E5%9B%BE%E7%89%87.png) ![输入图片说明](scan_result%E5%9B%BE%E7%89%87.png) ### 攻击路径分析 ![输入图片说明](attack_path%E5%9B%BE%E7%89%87.png) ### 漏洞详情与修复建议 ![漏洞详情](screenshots/vulnerability_details.png) ### 靶场扫描演示 ![输入图片说明](bachang%E5%9B%BE%E7%89%87.png) ###其他的 ![输入图片说明](%E5%9B%BE%E7%89%87.png) ![输入图片说明](user_manage%E5%9B%BE%E7%89%87.png) ![输入图片说明](anquanhegui%E5%9B%BE%E7%89%87.png) ![输入图片说明](anquanZhishiku%E5%9B%BE%E7%89%87.png) ![输入图片说明](report_manage%E5%9B%BE%E7%89%87.png) ![输入图片说明](anquanLoudongMange%E5%9B%BE%E7%89%87.png) ![输入图片说明](description%E5%9B%BE%E7%89%87.png) ## 🔧 API文档 系统提供RESTful API,主要端点包括: ### 扫描管理 - `POST /api/scan` - 提交新的扫描任务 - `GET /api/scan//status` - 查询扫描状态 - `GET /api/scan//report` - 获取扫描报告 - `DELETE /api/scan/` - 取消扫描任务 ### 漏洞管理 - `GET /api/vuln/` - 获取漏洞详情 - `GET /api/vulnerabilities` - 列出所有漏洞 - `GET /api/vulnerabilities/statistics` - 获取漏洞统计信息 - `GET /api/vulnerabilities/` - 按类型获取漏洞 ### 用户认证 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/profile` - 获取用户信息 ### 系统管理 - `GET /api/system/status` - 获取系统状态 - `GET /health` - 健康检查 - `GET /api/system/components` - 获取系统组件信息 - `GET /api/system/resources` - 获取系统资源使用情况 ### 靶场管理 - `GET /api/targets` - 获取靶场列表 - `POST /api/targets` - 添加新靶场 - `PUT /api/targets/` - 更新靶场信息 - `DELETE /api/targets/` - 删除靶场 ## 📊 支持的漏洞类型 - **SQL注入 (SQL Injection)** - 检测各种SQL注入漏洞,包括盲注、时间盲注等 - **跨站脚本 (XSS)** - 检测反射型、存储型和DOM型XSS漏洞 - **命令注入 (Command Injection)** - 检测操作系统命令执行漏洞 - **目录遍历 (Directory Traversal)** - 检测路径遍历漏洞 - **信息泄露 (Information Disclosure)** - 检测敏感文件泄露、配置信息泄露等 - **不安全的反序列化 (Insecure Deserialization)** - 检测反序列化漏洞 - **服务器端请求伪造 (SSRF)** - 检测SSRF漏洞和内网探测风险 - **弱密码检测 (Weak Passwords)** - 检测常见服务的弱密码问题 - **XML外部实体注入 (XXE)** - 检测XML解析漏洞 ## 🛡️ 安全特性 - **智能风险评估** - 使用XGBoost机器学习模型进行漏洞风险评分 - **攻击路径分析** - 自动构建潜在攻击链,识别高风险攻击路径 - **修复建议生成** - 为每个漏洞提供针对性的修复方案 - **扫描限速机制** - 内置智能限速,避免对目标系统造成过大压力 - **漏洞误报过滤** - 多层验证机制,减少误报率 - **敏感信息保护** - 自动脱敏处理,保护扫描过程中的敏感数据 ## 📈 系统架构 ### 核心组件 - **扫描引擎** - 多线程漏洞扫描器,支持9种漏洞类型检测 - **风险评估模块** - 基于机器学习的漏洞风险评分系统 - **任务调度系统** - 分布式任务队列,支持异步和定时扫描 - **数据存储层** - SQLite数据库,存储扫描结果和系统配置 - **缓存系统** - Redis缓存,提升系统性能 - **前后端分离架构** - 提供Vue 3和Streamlit两种前端界面 ### 数据流 1. 用户通过前端界面提交扫描任务 2. Flask API接收并验证请求,创建扫描任务 3. Celery工作队列处理扫描任务 4. 扫描引擎执行漏洞检测 5. 扫描结果存储到SQLite数据库 6. 风险评估模块分析并评分 7. 前端获取并展示结果 ## 📝 系统配置 ### 主要配置文件 - `app.py` - Flask应用主配置 - `app/services/celery_config.py` - Celery配置 - `app/utils/redis_config.py` - Redis连接配置 - `app/models/database.py` - 数据库配置 ### 环境变量 - `FLASK_ENV` - Flask运行环境(development/production) - `SECRET_KEY` - Flask应用密钥 - `REDIS_URL` - Redis连接URL - `DATABASE_URL` - 数据库连接URL ## 🧪 使用演示 ### 基本扫描示例 ```python import requests import time # 提交扫描任务 response = requests.post('http://localhost:5000/api/scan', json={ 'target': 'http://example.com', 'scan_depth': 2, 'scan_types': ['sql_injection', 'xss'], 'scan_speed': 'normal', 'recursive': True }) data = response.json() scan_id = data['scan_id'] print(f"扫描任务已创建,ID: {scan_id}") # 轮询扫描状态 while True: status_response = requests.get(f'http://localhost:5000/api/scan/{scan_id}/status') status_data = status_response.json() print(f"扫描进度: {status_data['progress']}%, 状态: {status_data['status']}") if status_data['status'] in ['completed', 'failed']: break time.sleep(5) # 获取扫描报告 report_response = requests.get(f'http://localhost:5000/api/scan/{scan_id}/report') report = report_response.json() print(f"扫描完成,发现 {len(report.get('vulnerabilities', []))} 个漏洞") print(f"高危漏洞: {sum(1 for v in report.get('vulnerabilities', []) if v.get('severity') == 'high')}") print(f"中危漏洞: {sum(1 for v in report.get('vulnerabilities', []) if v.get('severity') == 'medium')}") print(f"低危漏洞: {sum(1 for v in report.get('vulnerabilities', []) if v.get('severity') == 'low')}") ``` ### 健康检查示例 ```python import requests # 检查系统健康状态 response = requests.get('http://localhost:5000/health') health_data = response.json() print(f"系统状态: {health_data.get('status')}") print(f"数据库连接: {'正常' if health_data.get('system_status', {}).get('database') else '异常'}") print(f"Redis连接: {'正常' if health_data.get('system_status', {}).get('redis') else '异常'}") print(f"API版本: {health_data.get('version')}") print(f"运行时间: {health_data.get('uptime')}秒") # 打印已加载的模块 print("\n已加载的扫描模块:") for module in health_data.get('system_status', {}).get('loaded_modules', []): print(f"- {module}") ``` ### 靶场扫描示例 ```python import requests # 获取靶场列表 response = requests.get('http://localhost:5000/api/targets') targets = response.json() print("可用靶场:") for target in targets: print(f"- {target['name']}: {target['url']} ({target['description']})") # 扫描指定靶场 if targets: target_to_scan = targets[0]['url'] print(f"\n开始扫描靶场: {target_to_scan}") scan_response = requests.post('http://localhost:5000/api/scan', json={ 'target': target_to_scan, 'scan_depth': 3, 'scan_types': ['all'], 'is_target_range': True }) scan_data = scan_response.json() print(f"扫描任务已创建,ID: {scan_data['scan_id']}") ``` ## 🚀 快速开始 ### 环境要求 - Python 3.8+ - Node.js 16+ (可选,用于Vue前端) - Redis 6.0+ (必需) ### 一键启动(推荐) 项目提供了一键启动脚本,可以自动安装依赖、启动所有服务: ```bash # Windows系统 python start.py # Linux/MacOS系统 python3 start.py ``` ### 手动安装步骤 #### 1. 克隆项目 ```bash git clone https://gitee.com/yourusername/vulnerability-scanner.git cd vulnerability-scanner ``` #### 2. 安装Python依赖 ```bash # 创建虚拟环境(推荐) python -m venv venv # 激活虚拟环境 # Windows venv\Scripts\activate # Linux/MacOS source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` #### 3. 启动Redis服务 - **Windows**: 从 https://github.com/microsoftarchive/redis/releases 下载并安装Redis,然后启动服务 - **Linux (Ubuntu/Debian)**: `sudo systemctl start redis-server` - **MacOS**: `brew services start redis` #### 4. 启动各个组件 ```bash # 初始化数据库(首次运行) python init_db.py # 启动Flask应用 python app.py # 启动Celery Worker(在新终端中) celery -A app.services.celery_config worker --loglevel=info # 启动Streamlit前端(在新终端中,可选) streamlit run app/frontend/app.py # 启动Vue前端(在新终端中,可选) cd frontend npm install # 仅首次运行 npm run dev ``` ## 🔒 安全考虑 - **授权使用** - 本工具仅用于授权的安全测试和教育目的 - **合法合规** - 请勿对未授权的系统进行扫描,使用时应遵循相关法律法规和道德规范 - **负责任使用** - 扫描可能对目标系统造成压力,请合理设置扫描参数 - **数据保护** - 避免在公共环境中使用本工具扫描包含敏感信息的系统 - **靶场测试** - 推荐在OWASP WebGoat、Juice Shop等标准安全靶场进行测试学习 ## 🤝 贡献指南 我们欢迎社区贡献!请按照以下步骤参与: 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 开启 Pull Request ### 贡献类型 - 新增漏洞扫描模块 - 改进风险评估算法 - 优化前端界面 - 修复bug和性能问题 - 完善文档 ### 代码规范 - 遵循PEP 8编码规范(Python) - 提交前运行测试确保代码质量 - 为新增功能编写文档和示例 ## 📝 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 📧 联系方式 项目维护者: [项目负责人](mailto:contact@example.com) 项目链接: [https://gitee.com/yourusername/vulnerability-scanner](https://gitee.com/yourusername/vulnerability-scanner) ## 📋 常见问题 ### Q: 扫描过程中遇到错误怎么办? A: 检查目标URL是否可访问,Redis服务是否正常运行,查看日志获取详细错误信息。 ### Q: 为什么某些漏洞没有被检测到? A: 漏洞扫描存在一定的局限性,建议结合其他安全测试方法使用。 ### Q: 如何提高扫描效率? A: 可以调整扫描深度、选择特定漏洞类型、设置适当的扫描速度。 ### Q: 系统支持分布式部署吗? A: 是的,通过配置共享Redis和数据库,可以部署多个Celery worker节点。 ### Q: 如何扩展系统支持更多漏洞类型? A: 在`scripts`目录下创建新的扫描脚本,并在`script_metadata.json`中注册。 --- *注: 本项目为开源安全工具,使用时请确保遵守相关法律法规。* --- ## 🚩 项目状态 - ✅ Flask API服务正常运行 - ✅ 健康检查端点(/health)已配置 - ✅ 漏洞扫描核心功能已实现 - ✅ 风险评估模型已加载 - ✅ 数据库连接正常 - ✅ Redis缓存服务正常 - ✅ Streamlit前端已就绪 - ✅ Celery任务队列已配置 - ⚠️ Vue前端需要Node.js环境 *使用`python start.py`一键启动所有服务!*