selsabila-gtm/Web-Vulnerability-Scanner

GitHub: selsabila-gtm/Web-Vulnerability-Scanner

一款面向 Web 应用的安全扫描工具,专注于发现常见漏洞并提供轻量级自动化检测。

Stars: 0 | Forks: 0

# VulnScan — 简易 Web 漏洞扫描器 ## 1. 视频演示 ### VulnScan 项目演示 **YouTube 链接:** https://www.youtube.com/watch?v=UU7vu1W-l4U ### 视频内容 - VulnScan 仪表板介绍 - 对易受攻击的本地 Web 应用程序运行扫描 - SQL 注入 (SQLi) 漏洞测试 - 跨站脚本攻击 (XSS) 检测 - Cookie 安全性分析 - HTTP 安全标头分析 - 检测过时的组件和已知的 CVE - 查看生成的扫描结果和报告 ## 2. 项目代码 ### 文件夹结构 ``` VulnScan/ ├── app.py # Main Streamlit dashboard ├── fetcher.py # HTTP request handler ├── extractor.py # URL and form extractor ├── reporter.py # Report generation module ├── cve_checker.py # CVE lookup module ├── models.py # Data models │ ├── scanners/ │ ├── sqli.py # SQL Injection scanner │ ├── xss.py # XSS vulnerability scanner │ ├── cookies.py # Cookie analyzer │ ├── headers.py # HTTP header analyzer │ └── components.py # Component & CVE detector │ ├── requirements.txt └── README.md # Deliverables file ``` ### 访问说明 - 下载项目文件夹 - 安装所需的依赖项 - 在本地运行 Streamlit 应用程序 - 仅使用测试或故意存在漏洞的 Web 应用程序 ## 3. 补充提交说明 ### 测试环境 所有测试均在以下受控环境中进行: - 操作系统:Windows 11 - Python 版本:Python 3.11+ - 框架:Streamlit - 浏览器:Google Chrome - 测试目标:本地存在漏洞的 Flask Web 应用程序 ## 4. Python 环境设置 ### 第 1 步 — 下载项目 ``` cd VulnScan ``` ### 第 2 步 — 创建虚拟环境 ``` python -m venv venv ``` ### 第 3 步 — 激活环境 #### Windows ``` venv\Scripts\activate ``` #### Linux / macOS ``` source venv/bin/activate ``` ### 第 4 步 — 安装所需的包 ``` pip install -r requirements.txt ``` ## 5. 演示的漏洞检测模块 | 模块 | 功能 | 已演示 | |--------|----------|---------------| | SQL 注入扫描器 | 检测 SQLi payload 响应 | 是 | | XSS 扫描器 | 检测反射型 XSS 漏洞 | 是 | | Cookie 分析器 | 检查不安全的 Cookie 配置 | 是 | | 标头分析器 | 检测缺失的安全标头 | 是 | | 组件扫描器 | 检测过时的技术和 CVE | 是 | | 报告系统 | 显示结构化的扫描结果 | 是 | ## 6. 观察到的已知限制 - HTTPS 高级扫描支持受限 - 未能完全支持受身份验证保护的页面 - 仅实现了反射型 XSS 检测 - 无基于 DOM 的 XSS 检测 - 抓取功能有限 ## 7. 如何评估此提交 ### 对于 VulnScan 1. 观看 YouTube 演示视频 2. 从共享网盘下载项目文件夹 3. 使用 `requirements.txt` 安装依赖项 4. 运行 Streamlit 仪表板 5. 输入目标 URL 6. 启动漏洞扫描 7. 查看检测到的漏洞和生成的报告 ## 8. 如何运行和测试 ### 第 1 步 — 安装依赖项 ``` pip install -r requirements.txt ``` ### 第 2 步 — 启动 Streamlit 仪表板 ``` streamlit run app.py ``` ### 第 3 步 — 打开浏览器 Streamlit 将自动打开: ``` http://localhost:8501 ``` ### 第 4 步 — 开始扫描 - 输入目标 URL - 选择扫描模块 - 运行扫描 - 在仪表板中查看结果 ## 9. 检测到的漏洞示例 | 漏洞类型 | 示例 | |-------------------|----------| | SQL 注入 | `' OR '1'='1` | | 跨站脚本攻击 (XSS) | `` | | 缺失安全标头 | 缺失 CSP / HSTS | | 不安全的 Cookie | 缺失 HttpOnly 或 Secure | | 过时的组件 | 存在漏洞的 JavaScript 库 | ## 10. 满足的评估标准 | 要求 | 状态 | 证据 | |-------------|--------|----------| | Web 漏洞扫描 | 是 | 扫描仪表板结果 | | SQL 注入检测 | 是 | SQLi 扫描器演示 | | XSS 检测 | 是 | XSS 扫描器演示 | | Cookie 安全性分析 | 是 | Cookie 分析器结果 | | 安全标头分析 | 是 | 标头分析器输出 | | 过时组件检测 | 是 | CVE/组件扫描器 | | 结构化报告 | 是 | 仪表板扫描报告 | | 包含演示视频 | 是 | YouTube 提交链接 | ## 11. 合理使用声明 本项目的开发严格限于: - 教育目的 - 授权的安全测试 - 受控的实验室环境 严禁在未获得明确许可的情况下,将此扫描器用于针对任何系统。
标签:CISA项目, Python, Streamlit, Web漏洞扫描, 安全工具, 无后门, 渗透测试, 访问控制