atharvacancode/vulnerability-scanner
GitHub: atharvacancode/vulnerability-scanner
一个基于 Python 的 Web 应用漏洞扫描器,能够自动爬取目标站点并检测 SQL 注入、XSS、CSRF、目录遍历及安全标头缺失等常见漏洞,同时生成 HTML 格式的详细报告。
Stars: 0 | Forks: 0
# 漏洞扫描器
一个基于 Python 的 Web 应用漏洞扫描器,可检测常见的安全缺陷,包括 SQL injection、XSS、CSRF、目录遍历和缺失的安全标头。
## 功能
- **SQL Injection 检测** — 测试 URL 参数中的 SQL injection 漏洞
- **XSS (跨站脚本攻击)** — 识别反射型 XSS 漏洞
- **CSRF (跨站请求伪造)** — 检测缺失的 CSRF token 保护
- **目录遍历** — 测试路径遍历漏洞
- **安全标头** — 检查是否缺失关键的安全标头(CSP、X-Frame-Options 等)
- **网站爬取** — 自动发现待测试的 endpoint
- **HTML 报告生成** — 生成详细的漏洞报告
## 安装
```
pip install -r requirements.txt
```
## 使用方法
```
python3 scanner.py
```
示例:
```
python3 scanner.py http://example.com
```
扫描器将执行以下操作:
1. 爬取目标网站(最深 2 层)
2. 测试发现的每个 endpoint 是否存在漏洞
3. 生成包含扫描结果的 `vulnerability_report.html`
## 测试
该扫描器已针对 **DVWA (Damn Vulnerable Web Application)** 进行过测试:
```
# 在 Docker 中运行 DVWA
sudo docker run --rm -it -p 80:80 vulnerables/web-dvwa
# 在另一个终端中,扫描它
python3 scanner.py http://localhost
```
**测试结果:**
- ✅ 网站爬取功能正常
- ✅ 安全标头检测运行正常
- ✅ HTML 报告生成正常工作
- ✅ 检测到了缺失的 X-Frame-Options、X-Content-Type-Options、CSP、HSTS 标头
## 工作原理
### 爬取
扫描器执行深度受限的爬取(最多 2 层),以发现目标域名上的所有 endpoint。
### 漏洞测试
**SQL Injection:** 注入常见的 SQL payload 并检查响应中是否存在 SQL 错误。
**XSS:** 使用 JavaScript payload 测试参数,并检查它们是否在未转义的情况下被反射。
**CSRF:** 扫描表单中是否存在 CSRF token。
**目录遍历:** 测试尝试访问系统文件的路径遍历。
**安全标头:** 验证是否存在关键的 HTTP 安全标头。
## 严重程度级别
- **严重** — 存在被立即利用的风险(SQL Injection、目录遍历)
- **高危** — 重大漏洞(XSS)
- **中危** — 显著的安全缺口(CSRF、缺失的标头)
## 报告示例
生成的 HTML 报告包含:
- 漏洞类型和数量
- 受影响的 URL
- 用于复现的 payload/详情
- 严重程度分类
## 局限性
- 基础的 payload 检测;复杂的 WAF 可能会绕过测试
- 不支持对受保护 endpoint 进行身份验证
- 仅限于浅层爬取(2 层)
- 检测依赖于模式匹配,而非复杂的 AST 分析
## 未来增强功能
- 身份验证支持
- 结合 session 管理的更深层爬取
- 更复杂的 payload 检测
- 服务器端请求伪造 (SSRF) 测试
- 不安全的反序列化检测
- API endpoint 扫描
- WAF 绕过技术
## 免责声明
本工具仅供**授权的安全测试**使用。未经授权扫描您不拥有或无权测试的网站是违法的。请负责任地使用。
标签:CISA项目, Python, Web安全, 加密, 多模态安全, 无后门, 漏洞扫描器, 蓝队分析, 请求拦截, 逆向工具