AbhinavS0201/Web_Vulnerability_Scanner

GitHub: AbhinavS0201/Web_Vulnerability_Scanner

一款基于 Streamlit 的自动化 Web 漏洞扫描器,对目标网站进行 OWASP Top 10 安全检查并生成包含评分的 PDF 报告。

Stars: 2 | Forks: 0

# 🛡️ 自动化 Web 漏洞扫描器 ![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square\&logo=python\&logoColor=white) ![Streamlit](https://img.shields.io/badge/Streamlit-1.32+-FF4B4B?style=flat-square\&logo=streamlit\&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![OWASP](https://img.shields.io/badge/OWASP-Top%2010-000000?style=flat-square) ![SQLite](https://img.shields.io/badge/SQLite-Local%20Storage-003B57?style=flat-square\&logo=sqlite) ## 📌 概述 **自动化 Web 漏洞扫描器** 是一款网络安全工具,可对 Web 应用程序进行全面的安全评估。它检查与 **OWASP Top 10 (2021)** 相一致的常见漏洞,并生成包含可操作修复建议的专业 PDF 报告。 作为一个 **网络安全实习项目** 构建,该工具展示了对以下内容的实际了解: * Web 应用程序安全概念 * HTTP 协议与安全标头 * SSL/TLS 证书检查 * 网络端口扫描 * 威胁评分与风险量化 ## ✨ 功能 | 模块 | 功能说明 | | --------------------------- | ----------------------------------------------------------------------------------- | | 🔒 **HTTP 标头分析器** | 检查 10 个关键安全标头(CSP、HSTS、X-Frame-Options 等) | | 🔐 **SSL/TLS 检查器** | 证书有效性、过期倒计时、颁发者、TLS 版本、自签名检测 | | 🌐 **端口扫描器** | 使用多线程并行扫描 16 个常见端口,标记 CRITICAL 级别的暴露 | | 🖥 **服务器分析器** | 识别服务器软件、CMS、cookie 标志、HTTPS 重定向、版本披露的特征 | | 📊 **评分引擎** | 加权的 0–100 安全评分,包含各模块细分得分 | | 📄 **PDF 报告** | 通过 ReportLab 生成可下载的专业报告 | | 🗄 **扫描历史记录** | 所有扫描均本地存储在 SQLite 中,可在历史记录页面查看 | ## 🚀 快速开始 ### 前置条件 * Python 3.10 或更高版本 * pip ### 安装说明 ``` # Clone 仓库 git clone https://github.com/AbhinavS0201/Web_Vulnerability_Scanner.git # 导航到项目文件夹 cd Web_Vulnerability_Scanner # 创建 virtual environment(可选) python -m venv venv # 激活环境 # Windows venv\Scripts\activate # Linux/macOS source venv/bin/activate # 安装 dependencies pip install -r requirements.txt # 运行 application streamlit run app.py ``` 应用程序将可通过以下地址访问: ``` http://localhost:8501 ``` ## 🗂️ 项目结构 ``` web-vulnerability-scanner/ │ ├── app.py │ ├── modules/ │ ├── __init__.py │ ├── header_analyzer.py │ ├── ssl_inspector.py │ ├── port_scanner.py │ ├── server_analyzer.py │ ├── score_calculator.py │ └── report_generator.py │ ├── database/ │ ├── __init__.py │ └── db_manager.py │ ├── .streamlit/ │ └── config.toml │ ├── requirements.txt ├── scans.db └── README.md ``` ## 🔍 执行的安全检查 ### HTTP 安全标头 (35 分) | 标头 | OWASP 参考 | 用途 | | ---------------------------- | --------- | --------------------------------- | | Content-Security-Policy | A03:2021 | 防范 XSS / 注入 | | Strict-Transport-Security | A02:2021 | 强制使用 HTTPS | | X-Frame-Options | A05:2021 | 防范点击劫持 | | X-Content-Type-Options | A05:2021 | 防范 MIME 嗅探 | | Referrer-Policy | A05:2021 | 控制信息泄露 | | Permissions-Policy | A05:2021 | 浏览器特性控制 | | X-XSS-Protection | A03:2021 | 旧版 XSS 过滤器 | | Cache-Control | A02:2021 | 保护敏感数据缓存 | | Cross-Origin-Opener-Policy | A05:2021 | 浏览上下文隔离 | | Cross-Origin-Resource-Policy | A05:2021 | 跨域读取保护 | ### SSL / TLS 分析 (30 分) * 证书有效性验证 * 过期监控 * TLS 版本评估 * 自签名证书检测 * 通配符证书检测 * 主题备用名称 (SANs) 分析 ### 端口安全分析 (20 分) | 风险等级 | 示例端口 | | ----------- | -------------------------- | | 🔴 CRITICAL | 3306, 27017, 6379, 23, 445 | | 🟠 HIGH | 21, 110, 143 | | 🟡 MEDIUM | 22, 25, 53 | | 🟢 LOW | 80, 443 | ### 服务器配置 (15 分) * HTTPS 重定向验证 * 安全 Cookie 检测 * HttpOnly Cookie 验证 * 服务器 Banner 泄露检测 * HTTP/2 支持分析 ## 📊 评分系统 ``` Security Score (0–100) HTTP Headers → 35 Points SSL/TLS → 30 Points Port Security → 20 Points Server Config → 15 Points Grade Scale 80–100 ✅ SECURE 60–79 ⚠️ MODERATE RISK 40–59 🟠 VULNERABLE 0–39 🔴 CRITICAL RISK ``` ## 🛠️ 技术栈 | 技术 | 用途 | | ------------------ | ---------------------- | | Python 3.10+ | 核心开发 | | Streamlit | 用户界面 | | Requests | HTTP 通信 | | Socket | TCP 端口扫描 | | SSL Library | 证书检查 | | ReportLab | PDF 报告生成 | | SQLite3 | 本地数据库存储 | | ThreadPoolExecutor | 并行处理 | ## 👥 项目团队 | 姓名 | 电子邮箱 | LinkedIn | | -------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------- | | **Abhinav Rama** | [abhinavrama2005@gmail.com](mailto:abhinavrama2005@gmail.com) | [LinkedIn](https://www.linkedin.com/in/abhinav-rama-b44302304/) | | **Samudrala Srinivasa Vyshnavi** | [svyshnavi.samudrala@gmail.com](mailto:svyshnavi.samudrala@gmail.com) | [LinkedIn](https://www.linkedin.com/in/samudrala-vyshnavi-824862282/) | | **Rampelli Rithwik** | [RampelliRithwik@gmail.com](mailto:RampelliRithwik@gmail.com) | [LinkedIn](https://www.linkedin.com/in/rithwik-rampelli-2067612b2/) | | **Kommidi Vishravas Reddy** | [vishravasreddy@gmail.com](mailto:vishravasreddy@gmail.com) | [LinkedIn](https://www.linkedin.com/in/vishravasreddy-kommidi-997463288/)| ## ⚠️ 免责声明 本工具仅供 **授权的安全测试** 使用。 仅扫描您拥有或获得明确书面测试许可的系统。 未经授权扫描系统可能违反当地法律法规。 ## 📄 许可证 该项目基于 MIT 许可证授权。 详情请参阅 **LICENSE** 文件。
标签:Kubernetes, OWASP Top 10, PDF报告, Python, SSL/TLS分析, Streamlit, Web漏洞扫描, 反取证, 字符串匹配, 安全评估, 密码管理, 插件系统, 数据统计, 无后门, 端口扫描, 访问控制, 逆向工具