selsabila-gtm/Web-Vulnerability-Scanner
GitHub: selsabila-gtm/Web-Vulnerability-Scanner
一款面向 Web 应用的安全扫描工具,专注于发现常见漏洞并提供轻量级自动化检测。
Stars: 0 | Forks: 0
# VulnScan — 简易 Web 漏洞扫描器
## 1. 视频演示
### VulnScan 项目演示
**YouTube 链接:** https://www.youtube.com/watch?v=UU7vu1W-l4U
### 视频内容
- VulnScan 仪表板介绍
- 对易受攻击的本地 Web 应用程序运行扫描
- SQL 注入 (SQLi) 漏洞测试
- 跨站脚本攻击 (XSS) 检测
- Cookie 安全性分析
- HTTP 安全标头分析
- 检测过时的组件和已知的 CVE
- 查看生成的扫描结果和报告
## 2. 项目代码
### 文件夹结构
```
VulnScan/
├── app.py # Main Streamlit dashboard
├── fetcher.py # HTTP request handler
├── extractor.py # URL and form extractor
├── reporter.py # Report generation module
├── cve_checker.py # CVE lookup module
├── models.py # Data models
│
├── scanners/
│ ├── sqli.py # SQL Injection scanner
│ ├── xss.py # XSS vulnerability scanner
│ ├── cookies.py # Cookie analyzer
│ ├── headers.py # HTTP header analyzer
│ └── components.py # Component & CVE detector
│
├── requirements.txt
└── README.md # Deliverables file
```
### 访问说明
- 下载项目文件夹
- 安装所需的依赖项
- 在本地运行 Streamlit 应用程序
- 仅使用测试或故意存在漏洞的 Web 应用程序
## 3. 补充提交说明
### 测试环境
所有测试均在以下受控环境中进行:
- 操作系统:Windows 11
- Python 版本:Python 3.11+
- 框架:Streamlit
- 浏览器:Google Chrome
- 测试目标:本地存在漏洞的 Flask Web 应用程序
## 4. Python 环境设置
### 第 1 步 — 下载项目
```
cd VulnScan
```
### 第 2 步 — 创建虚拟环境
```
python -m venv venv
```
### 第 3 步 — 激活环境
#### Windows
```
venv\Scripts\activate
```
#### Linux / macOS
```
source venv/bin/activate
```
### 第 4 步 — 安装所需的包
```
pip install -r requirements.txt
```
## 5. 演示的漏洞检测模块
| 模块 | 功能 | 已演示 |
|--------|----------|---------------|
| SQL 注入扫描器 | 检测 SQLi payload 响应 | 是 |
| XSS 扫描器 | 检测反射型 XSS 漏洞 | 是 |
| Cookie 分析器 | 检查不安全的 Cookie 配置 | 是 |
| 标头分析器 | 检测缺失的安全标头 | 是 |
| 组件扫描器 | 检测过时的技术和 CVE | 是 |
| 报告系统 | 显示结构化的扫描结果 | 是 |
## 6. 观察到的已知限制
- HTTPS 高级扫描支持受限
- 未能完全支持受身份验证保护的页面
- 仅实现了反射型 XSS 检测
- 无基于 DOM 的 XSS 检测
- 抓取功能有限
## 7. 如何评估此提交
### 对于 VulnScan
1. 观看 YouTube 演示视频
2. 从共享网盘下载项目文件夹
3. 使用 `requirements.txt` 安装依赖项
4. 运行 Streamlit 仪表板
5. 输入目标 URL
6. 启动漏洞扫描
7. 查看检测到的漏洞和生成的报告
## 8. 如何运行和测试
### 第 1 步 — 安装依赖项
```
pip install -r requirements.txt
```
### 第 2 步 — 启动 Streamlit 仪表板
```
streamlit run app.py
```
### 第 3 步 — 打开浏览器
Streamlit 将自动打开:
```
http://localhost:8501
```
### 第 4 步 — 开始扫描
- 输入目标 URL
- 选择扫描模块
- 运行扫描
- 在仪表板中查看结果
## 9. 检测到的漏洞示例
| 漏洞类型 | 示例 |
|-------------------|----------|
| SQL 注入 | `' OR '1'='1` |
| 跨站脚本攻击 (XSS) | `` |
| 缺失安全标头 | 缺失 CSP / HSTS |
| 不安全的 Cookie | 缺失 HttpOnly 或 Secure |
| 过时的组件 | 存在漏洞的 JavaScript 库 |
## 10. 满足的评估标准
| 要求 | 状态 | 证据 |
|-------------|--------|----------|
| Web 漏洞扫描 | 是 | 扫描仪表板结果 |
| SQL 注入检测 | 是 | SQLi 扫描器演示 |
| XSS 检测 | 是 | XSS 扫描器演示 |
| Cookie 安全性分析 | 是 | Cookie 分析器结果 |
| 安全标头分析 | 是 | 标头分析器输出 |
| 过时组件检测 | 是 | CVE/组件扫描器 |
| 结构化报告 | 是 | 仪表板扫描报告 |
| 包含演示视频 | 是 | YouTube 提交链接 |
## 11. 合理使用声明
本项目的开发严格限于:
- 教育目的
- 授权的安全测试
- 受控的实验室环境
严禁在未获得明确许可的情况下,将此扫描器用于针对任何系统。
标签:CISA项目, Python, Streamlit, Web漏洞扫描, 安全工具, 无后门, 渗透测试, 访问控制