JumanALH/web-vulnerability-scanner

GitHub: JumanALH/web-vulnerability-scanner

一个用 Python 编写的教育性 Web 漏洞扫描器,能够检测 URL 参数中的 SQL 注入、反射型 XSS 漏洞以及缺失的 HTTP 安全标头。

Stars: 0 | Forks: 0

# Web 漏洞扫描器 一个对初学者友好的 Python 工具,用于扫描网站的常见安全漏洞。该项目旨在作为教育用途,帮助理解 Web 攻击的原理及其检测方式。 ## 功能 | 扫描类型 | 描述 | |-----------|-------------| | **SQL Injection** | 使用常见的 SQL payload 测试 URL 参数,并检查响应中是否存在数据库错误信息 | | **Reflected XSS** | 向 URL 参数注入类脚本 payload,并检查其是否未经转义地回显在响应中 | | **Security Headers** | 检查 7 个关键的 HTTP 安全标头,并报告缺失的项及其风险说明 | ## 安装 ``` # Clone 仓库 git clone https://github.com/JumanALH/web-vulnerability-scanner.git cd web-vulnerability-scanner # (可选)创建虚拟环境 python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt ``` ## 使用方法 ``` python main.py ``` 系统将提示您输入目标 URL: ``` Enter target URL (e.g., http://example.com/page?id=1): http://testphp.vulnweb.com/artists.php?artist=1 ``` 扫描器将测试 SQL 注入、XSS 以及缺失的安全标头,随后显示包含风险评估的摘要。 ### 输出示例 ``` ============================================================ SCAN SUMMARY ============================================================ SQL Injection vulnerabilities found: 2 Reflected XSS vulnerabilities found: 0 Missing security headers: 5 Security headers present: 2 --- Risk Assessment --- [!!] HIGH RISK — Active vulnerabilities detected! The target may be exploitable. Remediation is critical. ``` ## 各项扫描原理 ### SQL Injection 检测 1. 解析 URL 以提取查询参数 2. 将每个参数替换为 SQL payload(例如:`' OR '1'='1`) 3. 向服务器发送修改后的请求 4. 在响应中搜索数据库错误特征(MySQL、PostgreSQL、SQL Server、SQLite) ### Reflected XSS 检测 1. 解析 URL 以提取查询参数 2. 注入类脚本 payload(例如:``) 3. 检查 payload 是否**未经转义**地出现在响应 HTML 中 4. 如果原样回显,说明应用程序未对输入进行清理 ### Security Headers 检查 1. 发送 GET 请求并读取响应标头 2. 检查 7 个重要的安全标头: - `X-Frame-Options` — 防止点击劫持 - `X-Content-Type-Options` — 防止 MIME 嗅探 - `Content-Security-Policy` — 控制资源加载 - `Strict-Transport-Security` — 强制使用 HTTPS - `X-XSS-Protection` — 旧版 XSS 过滤器 - `Referrer-Policy` — 控制 Referer 泄露 - `Permissions-Policy` — 限制浏览器功能 ## 法律免责声明 **本工具仅供教育和授权安全测试使用。** - 仅扫描您**拥有**或拥有**明确书面授权**测试的网站 - 未经授权的扫描可能违反法律,例如《计算机欺诈与滥用法》(CFAA) - 作者不对本工具的任何滥用行为负责 - 为了安全实践,请使用故意存在漏洞的应用程序,例如 [DVWA](https://github.com/digininja/DVWA) 或 [Acunetix test site](http://testphp.vulnweb.com/) ## 我的收获 - SQL 注入如何利用未清理的数据库查询 - Reflected XSS 如何通过 URL 参数注入脚本 - 为什么 HTTP 安全标头很重要,以及每个标头的防护作用 - 如何使用模块化、可复用的代码构建 Python 项目 - 如何在 Python 中使用 `requests` 库和 URL 解析 ## 技术栈 - **Python 3** - **Requests** — 用于发送请求的 HTTP 库 - **urllib.parse** — 内置的 URL 解析工具
标签:CISA项目, DOE合作, EDR, HTTP安全, Python, SQL注入检测, Web安全, XSS检测, 代码生成, 反取证, 反射型XSS, 字符串匹配, 安全头审计, 安全评估, 教育工具, 无后门, 渗透测试工具, 网络安全, 脆弱性评估, 蓝队分析, 隐私保护