K921-cyber/Web_vulnerability_scanner

GitHub: K921-cyber/Web_vulnerability_scanner

一款基于 Flask 构建的教育型 Web 漏洞扫描器,主要用于快速检测 SQL 注入、XSS 等常见漏洞并生成 PDF 报告。

Stars: 7 | Forks: 1

# 🔒 Web 漏洞扫描器 一款基于 **Python** 和 **Flask** 构建的适合初学者的 Web 漏洞扫描器。 该工具专为**教育目的**而设计,旨在帮助开发者和安全爱好者理解并识别常见的 Web 漏洞。 该扫描器可检测: - SQL 注入 - 跨站脚本攻击 - CSRF 配置错误 - 开放重定向漏洞 扫描结果将通过**简洁的 Flask Web 界面**展示,并可导出为**可下载的 PDF 报告**。 ## 🏗️ 系统架构 ``` flowchart TD A[User] --> B[Flask Web Interface / CLI] B --> C[Scanner Engine] C --> D[SQL Injection Module] C --> E[XSS Detection Module] C --> F[CSRF Protection Module] C --> G[Open Redirect Module] D --> H[Result Aggregator] E --> H F --> H G --> H H --> I[Severity Classification] I --> J[OWASP Top 10 Mapping] J --> K[PDF Report Generator] K --> L[Display Results to User] ``` *图:典型的漏洞扫描器系统架构* :contentReference[oaicite:1]{index=1} **架构流程:** 用户 → Flask Web UI → 扫描引擎 → 漏洞模块 → 报告生成器 ⚠️ **免责声明:** 本项目仅供**教育用途**。 请勿扫描您不拥有或未获得**明确书面授权**进行测试的网站。 作者对因使用本程序造成的任何误用或损害**概不负责**。 ## 🖼️ 截图 ### 🔹 扫描仪表盘 image ### 🔹 生成的 PDF 报告 image ## 🚀 功能特性 - ✅ **SQL 注入检测** - ✅ **跨站脚本攻击检测** - ✅ **CSRF 保护检查** - ✅ **开放重定向检测** - 📄 **自动生成 PDF 报告** - 🌐 **简洁的 Flask Web 界面** ### 🔍 漏洞覆盖范围 | 漏洞类型 | 检测方法 | 严重程度 | |-------------------|-----------------|----------| | SQL 注入 | Payload 注入与错误匹配 | 高 | | XSS | Payload 回显分析 | 高 | | CSRF | 缺失 Token 检测 | 中 | | 开放重定向 | 重定向参数测试 | 中 | ## 🛠️ 使用的技术 - **后端:** Python 3 - **Web 框架:** Flask - **HTTP 请求:** Requests - **HTML 解析:** BeautifulSoup4 - **PDF 生成:** ReportLab - **前端:** HTML, CSS ### 🧱 技术栈 | 层级 | 技术 | |------|-----------| | 后端 | Python 3 | | Web 框架 | Flask | | HTTP 客户端 | Requests | | HTML 解析器 | BeautifulSoup | | 报告生成 | ReportLab | | 前端 | HTML, CSS | ## 📂 项目结构 ``` web-vulnerability-scanner/ │ ├── app.py ├── scanner/ │ ├── sqli.py │ ├── xss.py │ ├── csrf.py │ ├── open_redirect.py │ ├── templates/ │ └── index.html ├── static/ │ └── style.css ├── reports/ │ └── scan_report.pdf ├── docs/ │ └── images/ │ ├── system_architecture.png │ ├── dashboard.png │ ├── pdf_report.png │ └── workflow.png ├── requirements.txt └── README.md ``` ## 📦 安装与使用 ### 前置条件 - Python 3.6+ - pip ### 1️⃣ 克隆仓库 ``` git clone https://github.com/K921-cyber/Web_vulnerability_scanner.git cd web_vulnerability_scanner ``` ## 2️⃣ 创建并激活虚拟环境 # Linux / macOS ``` python3 -m venv venv source venv/bin/activate ``` # Windows ``` python -m venv venv .\venv\Scripts\activate ``` ## 3️⃣ 安装依赖 ``` pip install -r requirements.txt ``` ## 4️⃣ 运行应用 ``` python app.py ``` 打开浏览器并访问: 👉 http://127.0.0.1:5000 ## 💡 工作原理 扫描器会抓取目标 URL,识别输入字段和 URL 参数,注入预定义的 Payload,并分析服务器响应以检测潜在的漏洞。 ## 🔐 SQL 注入检测 ``` payloads = ["'", "\"", "' OR 1=1--"] for payload in payloads: data[input_name] = payload response = requests.post(url, data=data) if "SQL syntax" in response.text: return True ``` ## 🧪 跨站脚本攻击检测 ``` payload = '' response = requests.post(url, data={field: payload}) if payload in response.text: return True ``` ## 🛡️ CSRF 保护检查 ``` csrf_token = form.find("input", {"name": "csrf_token"}) if not csrf_token: print("CSRF protection missing") ``` ## 🛡️ CSRF 保护检查 ``` csrf_token = form.find("input", {"name": "csrf_token"}) if not csrf_token: print("CSRF protection missing") ``` ## 🔁 开放重定向检测 ``` test_url = f"{url}?redirect=http://example.com" response = requests.get(test_url, allow_redirects=False) if response.status_code in [301, 302]: print("Open Redirect Vulnerability Found") ``` ## 🔄 扫描器工作流程 ``` Input URL ↓ Crawl Pages ↓ Inject Payloads ↓ Analyze Response ↓ Generate Report ```
标签:CISA项目, CSRF漏洞, DOE合作, Flask开发, OWASP Top 10, PDF报告生成, Python安全工具, SQL注入检测, Web应用防火墙辅助, Web漏洞扫描器, XSS漏洞扫描, 代码安全, 代码生成, 字符串匹配, 开放重定向漏洞, 教育安全工具, 渗透测试工具, 漏洞扫描引擎, 漏洞枚举, 网站安全扫描, 网站风险评估, 网络安全, 跨站脚本攻击, 逆向工具, 隐私保护