davytheprogrammer/web-vulnerability-scanner
GitHub: davytheprogrammer/web-vulnerability-scanner
一个基于 FastAPI 和 Tauri v2 构建的教育型 Web 漏洞扫描与模拟平台,在隔离环境中可视化展示攻击杀伤链以辅助网络安全教学。
Stars: 1 | Forks: 0
# CYBERAUDIT // 教育 Web 漏洞扫描器与模拟器
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/)
[](https://tauri.app/)
[](#)
CYBERAUDIT 是一个生产级、交互式的网络安全教育平台、CLI 审计工具和桌面应用程序。它在隔离的实验室环境中模拟网站侦察、安全配置错误扫描、数据库漏洞评估以及级联漏洞利用链。
## 📖 目录
1. [项目动机](#-project-motivation)
2. [核心功能](#-key-features)
3. [架构概述](#-architecture-overview)
4. [截图](#-screenshots)
5. [要求与前置条件](#-requirements--prerequisites)
6. [安装与构建指南](#-installation--build-guide)
7. [运行应用程序](#-running-the-application)
8. [桌面应用程序概述](#-desktop-application-overview)
9. [项目结构](#-project-structure)
10. [使用的技术](#-technologies-used)
11. [安全注意事项](#-security-considerations)
12. [路线图](#-roadmap)
13. [贡献](#-contributing)
14. [许可证](#-license)
15. [维护通知](#-maintenance-notice)
## 💡 项目动机
现代软件开发人员、系统工程师和网络管理员经常面临高企的“安全债务”,却不了解漏洞是如何串联在一起的。传统的安全扫描器会生成冗长、枯燥的 PDF,无法解释漏洞在运营层面的实际影响。
CYBERAUDIT 旨在弥补这一空白。通过将**高保真命令行审计器**与**华丽、现代的桌面界面**相结合,它直观地展示了“Kill Chain”(攻击杀伤链)——展示了微小的缺陷(例如提交了 `.env` 文件或未对 SQL 参数进行参数化处理)如何直接导致数据库被窃取、横向网络枢纽转移、云基础设施被入侵以及流量型 DDoS 勒索。
## ⚡ 核心功能
* **模拟侦察引擎**:抓取目录,挖掘元数据,并检查域名配置文件,以发现暴露的机密信息(如 AWS 密钥、API 凭据)和配置不当的 `.git` 设置。
* **漏洞分析矩阵**:模拟检查 SQL 注入、已弃用的加密方案(如 MD5/SHA1)、过时的系统版本横幅以及未受保护的管理控制面板。
* **交互式漏洞利用 Kill Chain**:一个直观的时间轴,展示攻击者如何从初步侦察一步步转向植入后门和横向移动。
* **防御缓解指南**:为开发者提供可操作的、默认安全的代码修复卡片,重点关注预处理语句、密钥轮换和日志配置。
* **守护进程日志控制台**:实时日志捕获窗格,用于监控 API 请求、扫描进度日志和系统事件。
* **多主题 UI**:时尚的暗色主题(霓虹网络安全点缀)和简洁的亮色主题,为教室和实验室环境提供最佳的无障碍体验。
## 🏗️ 架构概述
CYBERAUDIT 分为三个解耦的模块:
```
graph TD
A[Tauri Desktop App] -->|HTTP Fetch| B[FastAPI Backend Daemon]
C[CLI Tool] -->|Direct Import| D[Recon & Scanning Modules]
B -->|Calls API| D
D -->|Generates logs| E[logs/scanner.log]
A -->|Reads stream| B
B -->|Exposes logs| E
```
1. **前端客户端(桌面端)**:使用 HTML5、原生 ES6 Javascript 和毛玻璃效果的原生 CSS 样式构建的轻量级 webview。使用 Rust 和 **Tauri v2** 进行封装,实现原生的桌面窗口管理。
2. **后端守护进程(FastAPI)**:一个本地 REST API,用于处理扫描作业、托管日志流和管理指南索引。可通过 CLI 轻松启动。
3. **核心扫描器引擎(Python)**:底层审计库,包含漏洞检查定义、日志轮换器和格式化脚本。
## 📸 截图
*以下是 CYBERAUDIT 桌面仪表板的 UI 模型。(截图将在发布时更新)。*
| 仪表板概述 | 目标扫描进度 |
| :---: | :---: |
|  |  |
## ⚙️ 要求与前置条件
* **操作系统**:Linux、macOS 或 Windows 10/11
* **Python**:`3.8` 或更高版本(带有 `pip` 包管理器)
* **Node.js**:`18.0` 或更高版本(用于构建 Tauri 前端)
* **Rust & Cargo**:`1.70` 或更高版本(编译 Tauri 二进制文件所需)
## 🚀 安装与构建指南
### 分步安装
#### 1. 设置 Python 核心
克隆仓库并安装后端/CLI 需求:
```
# 克隆 repository
git clone https://github.com/davytheprogrammer/web-vulnerability-scanner.git
cd web-vulnerability-scanner
# 安装 Python requirements
pip install -r requirements.txt
# 全局安装该工具作为 CLI utility
pip install -e .
```
#### 2. 安装桌面 GUI 依赖
安装用于 Tauri 桌面封装的 Node.js 包:
```
cd desktop
npm install
cd ..
```
## 🚀 如何运行应用程序
根据您的需求,您可以在三种不同的配置中使用 CYBERAUDIT。以下是每种配置的简易操作指南。
### 配置 1:桌面应用程序(推荐)
要运行完整的可视化界面,您需要先启动后端服务器,然后再打开桌面应用程序。
#### 步骤 1:启动后端 API 服务器
打开一个终端窗口并运行:
```
web-vuln-scanner api
```
*这将在 `http://127.0.0.1:8000` 启动一个本地 FastAPI 服务器,为桌面扫描提供支持。*
#### 步骤 2:启动 GUI 客户端
打开一个**新的终端窗口**,导航到项目目录,然后运行:
```
cd desktop
npm run tauri dev
```
*原生桌面窗口将启动,自动连接到您的本地后端,并显示登录仪表板!*
### 配置 2:命令行界面 (CLI)
如果您偏好纯终端操作,可以直接从终端运行安全审计。无需运行后端服务器。
```
# 1. 对目标网站运行模拟扫描
web-vuln-scanner scan --target demo-shop.local
# 2. 展示目标的详细 vulnerabilities
web-vuln-scanner show-vulns --target insecure-bank.org
# 3. 查看模拟渗透攻击链
web-vuln-scanner show-chain --target api.defense-testing.test
# 4. 阅读安全编码缓解指南
web-vuln-scanner show-prevention
```
### 配置 3:独立运行后端
如果您正在开发自定义前端客户端或自动化实验室脚本,可以启动后端 API,并使用 HTTP 客户端工具(如 `curl` 或 Postman)与之通信:
```
# 在自定义 port 和 host 上启动 daemon
web-vuln-scanner api --port 8080 --host 0.0.0.0
```
* **验证服务器状态**:在浏览器中打开 `http://127.0.0.1:8080/health`。
* **通过 API 扫描目标**:
curl -X POST http://127.0.0.1:8080/scan -H "Content-Type: application/json" -d '{"target":"example.com"}'
## 🖥️ 桌面应用程序概述
CYBERAUDIT GUI 专为直观教学和清晰的演示而设计:
* **登录仪表板**:审查扫描历史记录、统计小部件,并查看实时的 API 守护进程连接状态。
* **审计启动器**:输入目标域名,选择扫描预设,监控进度条,并查看结构化、可展开的漏洞卡片。
* **Kill Chain 浏览器**:点击从侦察到勒索的各个阶段,查看模拟的代码示例和法律警告。
* **日志控制台**:直接在桌面界面内访问原始的 stdout 事务日志,并带有自动滚动开关。
## 📂 项目结构
```
web-vulnerability-scanner/
├── pyproject.toml # Python build metadata & entry points
├── requirements.txt # Main python dependencies
├── README.md # Comprehensive documentation
├── .gitignore # Files excluded from Git
├── docs/ # Developer and user guides
│ └── ARCHITECTURE.md # Deep dive into code layout & design
├── src/ # Python Source Code
│ ├── __init__.py
│ ├── api/ # FastAPI Server Layer
│ │ ├── __init__.py
│ │ └── server.py
│ ├── cli/ # Click CLI implementation
│ │ ├── __init__.py
│ │ └── main.py
│ ├── modules/ # Core Scanning Engine
│ │ ├── __init__.py
│ │ └── recon_engine.py
│ └── utils/ # Logging and helpers
│ ├── __init__.py
│ └── log_handler.py
├── desktop/ # Tauri Desktop Application
│ ├── package.json # Node dependencies & tauri scripts
│ ├── src/ # HTML/JS/CSS Frontend Assets
│ │ ├── index.html # Main single-page dashboard
│ │ ├── main.js # Controller code & fetch triggers
│ │ └── styles.css # Styling system & dark theme overrides
│ └── src-tauri/ # Rust Tauri configuration
│ ├── Cargo.toml # Rust crates
│ ├── tauri.conf.json # Window parameters & capabilities
│ └── capabilities/ # Security profiles
└── tests/ # Unit Testing Suite
├── __init__.py
└── test_scanner.py
```
## 🛠️ 使用的技术
* **语言**:Python 3、JavaScript (ES6+)、Rust (Tauri 核心)
* **框架(后端)**:FastAPI、Uvicorn
* **框架(桌面端)**:Tauri v2
* **样式(CSS)**:自定义 HSL 原生 CSS Grid/Flexbox 样式
* **CLI 库**:Click、Rich(终端中的 Rich 格式化)
* **测试**:PyTest
## 🔒 安全注意事项
1. **模拟 Payload**:扫描器不会启动真实的漏洞利用脚本、注入缓冲区或数据包洪泛。所有的漏洞利用转储、日志和 DDoS 操作均在客户端进行模拟,以保证系统安全。
2. **CORS 配置**:FastAPI 后端配置了宽松的 CORS 标头,以允许来自 Tauri 自定义 localhost 方案的连接。它只应在 `127.0.0.1` 上运行,以防止暴露给外部网络接口。
3. **日志净化**:数据库转储期间返回的模拟凭据和系统路径并不反映宿主系统的真实参数。
## 🗺️ 路线图
* [ ] 添加实时本地 SQLite 数据库支持,以永久存储历史日志。
* [ ] 在“设置”中支持自定义模拟速度和自定义目标预设。
* [ ] 在 FastAPI 中集成 WebSocket endpoint,以支持无需轮询的实时流式日志。
* [ ] 在桌面客户端内实现交互式终端挑战实验室。
## 📄 许可证
基于 MIT 许可证分发。详情请参阅 `LICENSE`。
## 🛠️ 维护通知
本仓库由社区**积极维护**。Pull requests 会得到定期审查,并且漏洞定义会不断更新,以与现代 Web 标准的 CVE 指南保持一致。
标签:AV绕过, FastAPI, Tauri, XXE攻击, 加密, 可视化界面, 实时处理, 密码管理, 漏洞扫描器, 网络安全教育, 逆向工具