siddhanthh/Advanced-Web-Vulnerability-Scanner
GitHub: siddhanthh/Advanced-Web-Vulnerability-Scanner
基于 Python Flask 构建的被动式 Web 漏洞扫描器,通过启发式分析 HTTP 头、DOM 结构和认证模式帮助用户快速发现潜在安全配置问题。
Stars: 0 | Forks: 0
# 高级 Web 漏洞扫描器
## 概述
这是一个使用 Python 和 Flask 构建的轻量级被动 Web 漏洞扫描器。它旨在演示核心的 Web 安全概念、启发式分析以及并发编程。该工具扫描目标 URL,识别潜在的配置不当或不安全模式,并在基于 Bootstrap 的整洁仪表板中展示结果。
该应用程序是完全自包含的,使用 SQLite 进行数据持久化,并专注于安全、非破坏性的检查,而不会发起主动攻击。
## 功能特性
- **安全响应头分析**:识别缺失的必需 HTTP 响应头(例如,Content-Security-Policy, Strict-Transport-Security, X-Frame-Options)。
- **表单与输入检查**:解析 DOM 以检测潜在的不安全表单、隐藏字段和缺失的 CSRF token。
- **注入启发式检测**:根据命名约定(例如,`id`、`search`、`email`),标记通常作为注入点(SQLi/XSS)的输入字段和 URL 参数。
- **弱身份验证检测**:检测通过 HTTP 传输的密码字段、不安全的表单 action 以及弱 autocomplete 配置。
- **内部链接爬取**:对同域链接执行深度受限的广度优先搜索,以并发扫描多个页面(默认限制:20 页)。
- **可选的 Nmap 与 Selenium 支持**:如果缺少外部工具,程序会优雅降级;但如果可用,则会利用它们进行更深度的侦察和动态 JS 渲染。
- **暗黑模式 UI**:响应式、分类清晰的仪表板,用于查看扫描历史和详细的漏洞报告。
## 技术栈
- **后端**:Python 3.10+, Flask
- **数据库**:SQLite3
- **抓取与解析**:`requests`, `BeautifulSoup4`
- **动态分析**:`selenium`
- **并发**:`concurrent.futures`
- **前端**:HTML5, Jinja2, Bootstrap 5, CSS3
## 工作原理
当用户提交 URL 时,应用程序使用 `requests` 库获取目标页面,并使用 `BeautifulSoup4` 解析 HTML 树。独立的扫描模块(响应头检查、表单检测、身份验证流程)被映射到 `ThreadPoolExecutor` 并发运行,以最大程度地减少网络 I/O 瓶颈。
如果启用了爬取功能,扫描器会查找所有同源的 `` 链接并将它们添加到队列中,在达到定义的 `max_pages` 限制之前对其进行访问。来自所有页面的结果将被聚合、去重并存储在本地 SQLite 数据库中。
## 架构
该项目遵循模块化、受 MVC 启发的模式:
* **`app.py`**:Flask 控制器,负责处理路由、表单提交和模板渲染。
* **`scanner.py`**:核心逻辑引擎,包含启发式规则和 `ThreadPoolExecutor` 实现。
* **`database.py`**:SQLite 查询的包装器,负责管理数据库初始化以及扫描和发现的 CRUD 操作。
## 文件夹结构
```
advanced-web-vulnerability-scanner/
│
├── app.py # Flask entry point and HTTP routes
├── scanner.py # Multithreaded scanning logic and heuristics
├── database.py # SQLite schema and DB interactions
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── .gitignore # Git ignore rules
├── templates/ # Jinja2 HTML templates
│ ├── base.html # Base layout wrapper
│ ├── index.html # Dashboard & New Scan page
│ ├── report.html # Scan results view
│ └── history.html # Previous scans table
└── static/ # Static assets
└── style.css # Custom dark theme styling
```
## 安装说明
### 前置条件
- Python 3.10 或更高版本
- (可选)添加到系统 PATH 中的 [Nmap](https://nmap.org/download.html)
- (可选)Google Chrome(Selenium 会自动管理驱动程序)
### Windows 设置
1. 克隆仓库并进入目录:
git clone
cd advanced-web-vulnerability-scanner
2. 创建虚拟环境并安装依赖:
python -m venv venv
.\venv\Scripts\python.exe -m pip install -r requirements.txt
## 运行方法
1. 启动 Flask 开发服务器:
.\venv\Scripts\python.exe app.py
2. 打开 Web 浏览器并导航至 `http://127.0.0.1:5000`。
3. 输入目标 URL(例如,`https://example.com`),配置爬取限制,选择任意可选工具,然后点击 **Start Scan**。
## 截图
### 主仪表板

### 扫描报告

### 历史记录视图

### Nmap 结果

## 数据库架构
SQLite 数据库(`scanner.db`)在首次运行时会自动初始化。它由三个表组成:
1. **`scans`**:存储扫描实例的元数据(URL、时间戳、性能指标、严重性统计、已爬取页面数)。
2. **`findings`**:存储检测到的单个漏洞,通过 `scan_id` 关联到具体的扫描。
3. **`ports`**:存储来自 Nmap 子进程的原始字符串输出,通过 `scan_id` 关联。
## Nmap 集成
该应用程序包含一个可选功能,可以使用 Python 的 `subprocess` 模块运行快速端口扫描(`nmap -F `)。这提供了基本的网络侦察。其实现是防御性的;如果在系统 PATH(或默认的 Windows 安装目录)中未找到 `nmap` 可执行文件,应用程序会捕获 `FileNotFoundError` 并跳过扫描,而不会导致 Web 服务器崩溃。
## Selenium 集成
现代单页应用(SPA)通过 JavaScript 动态渲染表单和内容。考虑到这一点,扫描器提供了可选的 Selenium 集成。它会启动一个无头 Chrome 实例以完全渲染 DOM,然后再使用 BeautifulSoup 进行解析。得益于 `selenium >= 4.6`,驱动程序二进制文件由 Selenium Manager 自动管理。
## 多线程
由于网络请求是严重的 I/O 密集型操作,对多个页面执行线性检查将极其缓慢。`scanner.py` 模块利用 Python 的 `concurrent.futures.ThreadPoolExecutor` 并发执行启发式检查函数。这极大地减少了扫描的总耗时,特别是在增加爬虫限制的情况下。
## 局限性
- **仅限被动检查**:该扫描器完全依赖于被动启发式方法(例如,分析 DOM 结构和 HTTP 响应头)。它不会发送恶意 payload(如 SQL 注入字符串)来验证可利用性。
- **误报**:由于扫描器根据模式(例如名为 `id` 的输入)标记潜在问题,因此它可能会产生需要手动验证的误报。
- **浅层爬取**:内部爬虫仅解析标准的 `` 标签的 `href` 属性,不会执行 JavaScript 来发现复杂的路由链接。
## 未来改进
- 实现导出选项,以 PDF 或 CSV 格式下载报告。
- 增加更深入的特定 CMS 指纹识别(例如,WordPress 插件检测)。
- 实现主动测试模块(带有用户同意标志)以验证基本的 XSS payload。
## 法律免责声明
**本工具严格仅用于授权的安全测试。** 您只能使用本软件扫描您拥有或获得明确、书面授权进行测试的网络、系统或 Web 应用程序。未经授权扫描或攻击第三方系统是违法行为。本项目的作者不承担任何责任,也不对因使用本程序造成的任何误用或损害负责。
标签:BeautifulSoup, BeEF, Bootstrap, C++17, CSRF, CTI, Flask, HTTP头分析, Python, Selenium, Snort++, SQLite, Web安全, Windows内核, XSS检测, 反取证, 安全基线检查, 安全教育, 安全评估, 实时处理, 密码管理, 无后门, 爬虫, 白帽子, 网络安全, 蓝队分析, 被动扫描, 逆向工具, 隐私保护