源码仓库:https://github.com/zhang123999-qq/AutoRecon.git
## 业务和功能介绍
**1、立项背景和目标**
安全评估工作需要频繁进行信息收集、资产测绘、漏洞探测等重复性操作,传统工具存在单线程性能瓶颈、功能分散、缺乏统一管理界面等问题。本项目旨在构建一套高性能、模块化、可视化的企业级信息收集框架,实现从资产发现到漏洞验证的自动化流程,提升安全评估效率。
**2、软件功能、核心功能模块**
| 模块 | 功能说明 |
|------|----------|
| 子域名收集 | 异步DNS枚举,支持5000+字典、多DNS服务器并发查询 |
| 端口扫描 | 高速异步端口探测,支持自定义端口范围与服务识别 |
| CDN检测 | 识别CDN/WAF,获取真实IP |
| 指纹识别 | 200+Web指纹库,精准识别CMS、框架、组件 |
| 敏感信息检测 | 目录扫描、备份文件、配置泄露探测 |
| 漏洞扫描 | SQL注入、XSS、SSRF等常见漏洞自动化检测 |
| SQLMap集成 | 自动发现带参URL,批量SQL注入扫描 |
| 压力测试 | 快速/智能/极限三种模式,抗压等级评估 |
| GitHub泄露 | 搜索代码仓库中的敏感信息泄露 |
| SSL证书分析 | 证书有效性、过期时间、漏洞检测 |
**3、业务流程、功能路径**
```
目标输入 → DNS解析 → 子域名枚举 → CDN检测 → 真实IP获取
↓
端口扫描 → 服务识别 → 指纹识别 → 漏洞探测 → SQL注入扫描
↓
报告生成 → PDF导出 → Web UI实时查看 → 历史记录管理
## 项目实现
**1、整体架构和设计思路**
采用异步事件驱动架构,核心引擎基于asyncio实现高并发I/O操作,Web层使用FastAPI提供RESTful API与WebSocket实时通信。
| 层级 | 技术选型 | 设计考量 |
|------|----------|----------|
| 核心引擎 | asyncio + aiohttp | 事件循环驱动,600-700/s并发吞吐 |
| Web框架 | FastAPI + Jinja2 | 异步原生支持,自动生成Swagger文档 |
| 实时通信 | WebSocket | 扫描进度实时推送,日志流式传输 |
| 数据存储 | SQLite + JSON缓存 | 轻量化本地存储,持久化扫描记录 |
| 报告系统 | Jinja2 + PDFKit | 模板化报告生成,支持HTML/PDF双格式 |
| 安全防护 | 内置SSRF/命令注入防护 | 白名单/黑名单机制,输入验证 |
**2、个人负责模块及量化成果**
| 负责模块 | 具体工作 | 量化成果 |
|----------|----------|----------|
| 核心引擎 | 异步并发引擎、自适应限速、插件系统 | 并发速度从50/s提升至700/s,提升14倍 |
| 安全加固 | SSRF防护、命令注入防护、API认证 | 修复6项安全风险,通过69项安全测试 |
| 代码质量 | 异常处理优化、类型注解、文档补全 | 质量评分从6.2提升至8.6/10 |
| Web UI | FastAPI后端、WebSocket实时推送、深色主题 | 实现扫描状态实时同步,支持移动端适配 |
**3、技术难点与解决方案**
| 难点 | 问题描述 | 解决方案 |
|------|----------|---------|
| 高并发控制 | 大规模扫描时连接数暴增导致目标服务器拒绝服务 | 实现自适应并发算法(AdaptiveConcurrency),根据响应时间动态调整速率 |
| SSRF漏洞 | 扫描功能可能被利用探测内网IP | 内置IPv4/IPv6私网地址黑名单 + DNS解析预检查 |
| 裸except泛用 | 26处使用裸except捕获异常,难以定位问题 | 逐处分析改为具体异常类型(ConnectionError/TimeoutError等) |
| 实时推送 | 扫描日志实时更新导致WebSocket消息风暴 | 消息合并+节流机制,50ms窗口内消息聚合后推送 |
---