NANDAN-S-GMIT/web-vulnerability-scanner
GitHub: NANDAN-S-GMIT/web-vulnerability-scanner
这是一款基于 Python 和 Next.js 构建的具备真实检测能力的 Web 漏洞扫描器,支持 XSS、SQL 注入及 CSRF 等常见 Web 漏洞的安全测试。
Stars: 0 | Forks: 0
# 🔒 Web 应用程序漏洞扫描器
一款专业的、生产就绪的 Web 漏洞扫描器,具备**真实检测能力**。该工具基于 Python 后端和 Next.js 前端构建,通过 payload 注入、响应分析和模式匹配执行实际的安全测试。




# 截图
以下截图展示了 **Web 应用程序漏洞扫描器** 的关键组件和工作流程。
### 仪表盘与项目信息
### 扫描工作流程
## 🎯 项目目的
这是一个**真正的漏洞扫描器**,可对目标网站执行实际的安全测试。它可以检测:
- **跨站脚本 (XSS)** - 通过 payload 注入和反射分析
- **SQL 注入** - 基于错误和基于时间的检测
- **跨站请求伪造 (CSRF)** - 基于启发式的 token 分析
**非常适合用于:**
- 网络安全作品集
- SOC 分析师 / 安全工程师面试
- 学习真实的漏洞扫描方法
- 教育性安全测试
## ⚠️ 安全免责声明
**重要提示**:此工具会对目标网站执行**实际的漏洞测试**。
- ✅ 仅扫描您**拥有**或获得**明确书面授权**进行测试的网站
- ❌ 在大多数司法管辖区,未经授权的扫描是**违法的**
- ⚖️ 始终遵循负责任的披露原则
- 🎓 **仅用于教育和授权测试**
## ✨ 功能
### 真实检测能力
#### 跨站脚本 (XSS)
- **9 种 XSS payload**,包括 ``、`
` 等
- 测试 URL 参数和表单输入
- 分析 HTTP 响应中未转义的 payload 反射
- 报告受影响的参数并提供证据
#### SQL 注入
- **基于错误的检测**:检测来自 MySQL、PostgreSQL、MSSQL、Oracle 的数据库错误
- **基于时间的检测**:测量 SLEEP/WAITFOR payload 造成的响应延迟
- 测试 URL 参数和表单提交
- 报告严重性(严重/高)并提供证据
#### CSRF 检测
- 识别状态更改表单(POST、PUT、DELETE)
- 检查常见的 CSRF token 字段名
- 针对缺失保护的启发式分析
- 报告潜在的 CSRF 漏洞
#### 基础 Web 爬虫
- 使用 BeautifulSoup 进行单页 HTML 解析
- 发现链接和表单
- 从 URL 中提取参数
- 无递归爬取(设计如此)
### 专业 UI
- 🌙 **暗黑网络安全主题** - 专业的 SOC 仪表盘美学
- ✨ **毛玻璃特效** - 现代、高端的设计
- 📊 **实时进度** - 实时扫描状态更新
- 🎨 **颜色编码的严重性** - 严重、高、中、低
- 📱 **响应式设计** - 适用于所有设备
## 🛠️ 技术栈
**Backend:**
- Python 3.8+
- Flask (REST API)
- Requests (HTTP 客户端)
- BeautifulSoup4 (HTML 解析)
**Frontend:**
- Next.js 16.1 (App Router)
- React 19.2
- TypeScript 5.0
- Tailwind CSS 4.0
## 📁 项目结构
```
web-vuln-scanner/
├── backend/ # Python backend
│ ├── app.py # Flask API server
│ ├── requirements.txt # Python dependencies
│ ├── README.md # Backend documentation
│ └── scanner/
│ ├── crawler.py # Web crawler
│ ├── xss_detector.py # XSS detection
│ ├── sqli_detector.py # SQLi detection
│ ├── csrf_detector.py # CSRF detection
│ ├── engine.py # Scan orchestrator
│ └── session.py # Session management
├── app/ # Next.js frontend
│ ├── page.tsx # Landing page
│ ├── scan/page.tsx # Scan interface
│ └── globals.css # Styles
├── components/ # React components
└── lib/ # Frontend utilities
├── scanAPI.ts # Backend API integration
└── types.ts # TypeScript definitions
```
## 🚀 快速开始
### 前置条件
- **Node.js 20+**(用于前端)
- **Python 3.8+**(用于后端)
- npm 或 yarn 包管理器
- pip 包管理器
### 安装
#### 1. 克隆仓库
```
git clone
cd web-vuln-scanner
```
#### 2. 后端设置
```
# 导航到 backend 目录
cd backend
# 安装 Python dependencies
pip install -r requirements.txt
# 启动 backend server
python app.py
```
后端将在 `http://localhost:5000` 上运行
#### 3. 前端设置
```
# 导航回 root 目录
cd ..
# 安装 Node dependencies
npm install
# 启动 frontend development server
npm run dev
```
前端将在 `http://localhost:3000` 上运行
### 快速启动
1. **启动后端**:`cd backend && python app.py`
2. **启动前端**:`npm run dev`(在根目录下)
3. **打开浏览器**:导航至 `http://localhost:3000`
4. **开始扫描**:输入目标 URL 并点击“开始扫描”
## 📖 使用方法
1. **落地页**
- 查看功能和安全免责声明
- 点击“开始安全扫描”
2. **扫描页面**
- 输入目标 URL(例如 `http://testphp.vulnweb.com`)
- 查看扫描器限制
- 点击“开始扫描”
- 监控实时进度
3. **结果仪表盘**
- 按严重性查看漏洞摘要
- 展开卡片以获取详细信息
- 查看证据、OWASP 类别和修复建议
## 🔍 扫描器限制
**在 UI 中明确显示:**
- ⚠️ **仅单页爬取** - 不递归跟踪链接
- ⚠️ **无 JavaScript 执行** - 无法分析客户端渲染的应用
- ⚠️ **无身份验证** - 无法测试需要认证的页面
- ⚠️ **基于模式匹配** - 非 ML 或 AI 检测
- ⚠️ **启发式 CSRF 检测** - 可能出现误报/漏报
- ⚠️ **内存存储** - 后端重启后结果丢失
## 🧪 测试扫描器
### 测试站点(合法且安全)
- **DVWA**: http://www.dvwa.co.uk/
- **bWAPP**: http://www.itsecgames.com/
- **WebGoat**: https://owasp.org/www-project-webgoat/
- **OWASP Juice Shop**: https://owasp.org/www-project-juice-shop/
**注意**:始终使用专门的漏洞测试应用程序,切勿在未经许可的情况下扫描生产网站。
## 🎨 设计理念
该应用程序采用受专业 SOC 工具启发的**暗黑网络安全主题**:
- **调色板:**
- 主色:青色/蓝色 (#00D9FF, #0EA5E9)
- 严重:红色 (#DC2626)
- 高:橙色 (#F97316)
- 中:黄色 (#EAB308)
- 低:绿色 (#10B981)
- **视觉效果:**
- 带有背景模糊的毛玻璃效果
- 交互元素上的赛博发光效果
- 平滑的渐变动画
- 实时进度更新
## 📚 API 文档
详细 API 文档请参阅 [backend/README.md](backend/README.md),包括:
- Endpoint 规范
- 请求/响应格式
- 检测方法
- 错误处理
## 🔮 未来增强
### 高级检测
- [ ] 基于 DOM 的 XSS 检测
- [ ] 盲注 SQL 注入检测
- [ ] XML 外部实体 (XXE) 检测
- [ ] 服务端请求伪造 (SSRF)
- [ ] 身份验证绕过测试
### 功能
- [ ] 带深度控制的递归爬取
- [ ] JavaScript 渲染 (Selenium/Playwright)
- [ ] 身份验证支持(会话管理)
- [ ] 报告导出 (PDF, JSON, CSV)
- [ ] 扫描历史记录和对比
- [ ] 自定义 payload 库
### 基础设施
- [ ] 数据库存储 (PostgreSQL/MongoDB)
- [ ] 用户身份验证
- [ ] 速率限制和节流
- [ ] 分布式扫描
- [ ] Docker 容器化
## 🐛 故障排除
**后端无法启动:**
- 确保已安装 Python 3.8+:`python --version`
- 安装依赖:`pip install -r backend/requirements.txt`
- 检查端口 5000 是否可用
**前端无法连接后端:**
- 验证后端是否在端口 5000 上运行
- 检查 `backend/app.py` 中的 CORS 配置
- 确保 `NEXT_PUBLIC_API_URL` 设置正确
**扫描超时:**
- 目标网站可能速度慢或正在阻止请求
- 增加 `backend/scanner/crawler.py` 中的超时时间
- 检查防火墙/网络设置
## 📄 许可证
本项目采用 MIT 许可证。
## 📧 联系方式
为安全专业人士和道德黑客打造。
**注意:** 这是一个具备实际检测能力的真实漏洞扫描器。在扫描任何网站之前,请务必获得适当的授权。
Landing Page
|
OWASP Top 10 Coverage
|
Scan Input Page
|
Scan Initialization & Crawling
|
SQL Injection Testing Phase
|
Vulnerability Summary Dashboard
|
Detailed Vulnerability Findings
|
Scanner Limitations
|
标签:AES-256, DOE合作, Flask, OWASP Top 10, Payload注入, Python, SQL注入检测, Web安全, Web应用扫描器, XSS检测, 代码生成, 后端开发, 响应分析, 字符串匹配, 安全测试, 攻击性安全, 无后门, 模式匹配, 渗透测试工具, 漏洞评估, 生产环境工具, 网络安全, 自动化资产收集, 蓝队分析, 逆向工具, 隐私保护