aakash1998gadekar/Web-Vulnerability-Scanner
GitHub: aakash1998gadekar/Web-Vulnerability-Scanner
基于Python的Web漏洞扫描工具,用于检测常见安全配置错误和基本漏洞。
Stars: 0 | Forks: 0
# 🔍 网络漏洞扫描器
## 📖 概述
由于服务器配置不当、缺少安全头、暴露的服务和编码实践不安全,Web应用程序始终面临安全威胁。本项目提供了一个简单的命令行界面(CLI)实用工具,通过针对目标Web应用程序进行基本检查,帮助识别一些常见的安全弱点。
扫描器专注于:
- 开放端口检测
- HTTP安全头分析
- 常见Web漏洞的基本模式匹配
- 安全最佳实践验证
此工具旨在帮助学生学习、网络安全爱好者以及开发者了解如何从高层次进行Web安全评估。
## ✨ 功能
### 🌐 端口扫描
检查常见的公开Web服务端口,例如:
- **80 (HTTP)**
- **443 (HTTPS)**
- **8080**
- **8443**
- 其他可配置端口
提供对公开可访问服务的快速可见性。
### 🛡️ HTTP安全头分析
分析服务器响应并验证重要安全头的存在,包括:
| 头部 | 目的 |
|----------|----------|
| `Strict-Transport-Security` | 强制HTTPS |
| `Content-Security-Policy` | 缓解XSS攻击 |
| `X-Frame-Options` | 防止点击劫持 |
| `X-Content-Type-Options` | 防止MIME嗅探 |
| `Referrer-Policy` | 控制引用信息 |
| `Permissions-Policy` | 限制浏览器功能 |
报告缺失或可能弱配置的情况。
### 🔎 响应模式分析
执行基本的响应检查,以识别与以下常见指标相关的指示:
#### SQL注入(SQLi)
查找常见的数据库错误消息,例如:
- MySQL错误
- PostgreSQL错误
- SQL Server错误
- Oracle数据库错误
#### 跨站脚本(XSS)
识别可能表明不正确输出编码的可疑脚本模式。
### 📊 可读性报告
以清晰的终端格式显示发现结果,包括:
- 严重性指标
- 漏洞描述
- 安全建议
## 🚀 入门
### 前置条件
- **Python 3.8+**
- 无需外部库
验证您的Python版本:
```
python --version
```
预期输出:
```
Python 3.8+
```
## 📥 安装
克隆存储库:
```
git clone https://github.com/yourusername/web-vulnerability-scanner.git
```
导航到项目目录:
```
cd web-vulnerability-scanner
```
无需其他安装步骤。
## 🖥️ 使用
### 基本扫描
```
python scanner.py http://example.com
```
### HTTPS目标
```
python scanner.py https://example.com
```
### 示例输出
```
=================================================
Web Vulnerability Scanner
=================================================
Target: https://example.com
[+] Port Scan
Port 80 : OPEN
Port 443 : OPEN
[+] Security Headers
✓ X-Frame-Options
✓ X-Content-Type-Options
✗ Content-Security-Policy Missing
[+] Vulnerability Indicators
No SQL Injection patterns detected.
No XSS patterns detected.
Scan Complete.
```
## 📂 项目结构
```
web-vulnerability-scanner/
│
├── scanner.py
├── README.md
└── LICENSE
```
## ⚙️ 工作原理
### 第1步 – 目标验证
扫描器验证提供的URL并提取:
- 协议
- 主机名
- 端口信息
### 第2步 – 端口枚举
尝试对常用Web端口进行TCP连接。
示例:
```
socket.connect((host, port))
```
### 第3步 – HTTP请求分析
获取目标页面并收集:
- 状态码
- 响应头
- 响应体
### 第4步 – 安全评估
将发现的头部与安全最佳实践进行比较。
### 第5步 – 模式匹配
在响应内容中搜索与以下指标相关的指示:
- SQL注入漏洞
- 跨站脚本漏洞
## 📋 样本发现
### 缺失安全头
```
[WARNING]
Content-Security-Policy header not found.
```
**风险:**
可能暴露于跨站脚本攻击。
**建议:**
```
Content-Security-Policy: default-src 'self';
```
### SQL错误泄露
```
[WARNING]
Detected MySQL error message in response.
```
**风险:**
可能泄露后端数据库信息。
**建议:**
实现适当的异常处理和通用错误消息。
## 🎯 用例
此项目可用于:
- 网络安全学习
- 安全演示
- 实验室环境
- 捕捉旗帜(CTF)练习
- 安全意识培训
- Python网络练习
## 🔒 限制
这是一个轻量级的教育扫描器,**不执行**:
- 激活利用
- 身份验证绕过测试
- 高级SQL注入测试
- 目录暴力破解
- 漏洞利用
- 身份验证攻击
- 完整渗透测试
对于全面的评估,请考虑专业的安全工具和方法。
## 🛠️ 未来改进
潜在的未来改进包括:
- 将报告导出为JSON
- 将报告导出为HTML
- 多线程扫描
- 自定义端口范围
- SSL/TLS配置分析
- Cookie安全检查
- 重定向分析
- 子域名枚举
- 漏洞评分系统
## 🤝 贡献
欢迎贡献。
如果您想改进此项目:
1. 分叉存储库
2. 创建功能分支
3. 提交您的更改
4. 提交拉取请求
### 💻 使用技术
- **Python 3**
- **套接字编程**
- **HTTP请求处理**
- **安全最佳实践**
**祝您学习愉快和安全编码!🚀**
标签:HTTP安全头部, SQL注入检测, XML 请求, XSS检测, 反取证, 学习工具, 安全开发, 安全意识, 安全最佳实践, 安全测试, 安全评估, 攻击性安全, 教育工具, 数据统计, 演示工具, 端口扫描, 网络安全, 逆向工具, 隐私保护