Deepanshu2118-spec/Web-Vulnerability-Scanner

GitHub: Deepanshu2118-spec/Web-Vulnerability-Scanner

一款基于 Node.js 的轻量级 Web 漏洞扫描器,能自动检测 SQL 注入、XSS 及缺失的安全 HTTP 头,并提供实时仪表盘与 HTML/JSON 报告导出。

Stars: 0 | Forks: 0

# 🛡️ VulnScanner — Web 漏洞扫描器

一款轻量级的 Web 应用漏洞扫描器,配备**高级深色模式仪表盘**,可检测 SQL 注入、XSS 以及不安全的 HTTP 头。使用 Node.js 和原生 JavaScript 构建。 ## ✨ 功能 - 🕷️ **Web 爬虫** — 遵循 robots.txt 协议发现页面、表单和参数 - 💉 **SQL 注入检测** — 支持基于错误、布尔盲注和时间盲注的检测 - ⚡ **XSS 检测** — 反射型和存储型跨站脚本攻击载荷 - 🔒 **安全头分析** — 检查 7 个关键安全头(CSP、HSTS、X-Frame-Options 等) - 📊 **实时仪表盘** — 通过 WebSocket 展示实时扫描进度及动画环形图 - 📝 **HTML & JSON 报告** — 可下载的报告包含严重性评级和修复步骤 - 🎯 **内置测试服务器** — 包含故意设计的安全漏洞,用于安全的演示/测试 - ⚙️ **可配置** — 可调整爬取深度、最大页面数、扫描类型以及 77+ 个测试载荷 ## 🚀 快速开始 ### 前置条件 - [Node.js](https://nodejs.org/) v18 或更高版本 - npm(随 Node.js 一起安装) ### 安装说明 ``` # 克隆 repository git clone https://github.com/YOUR_USERNAME/web-vulnerability-scanner.git cd web-vulnerability-scanner # 安装 dependencies npm install ``` ### 运行扫描器 **选项 1:一键启动 (Windows)** ``` start.bat ``` **选项 2:手动启动** ``` # Terminal 1 — 启动 vulnerable test server npm run test-server # Terminal 2 — 启动 scanner dashboard npm start ``` **选项 3:同时启动** ``` npm run dev ``` 然后在浏览器中打开 **http://localhost:3000**。 ## 📖 使用说明 1. 在浏览器中打开 `http://localhost:3000` 2. 点击侧边栏中的 **"New Scan"** 3. 选择以下任一操作: - 输入任何您有权限扫描的目标 URL - 点击 **"Scan Test Server"** 自动扫描位于 `http://localhost:4000` 的内置漏洞服务器 4. 配置扫描选项(爬取深度、最大页面数、扫描类型) 5. 点击 **"Start Scan"** 并查看实时进度 6. 查看包含严重程度分类和可展开漏洞详情卡片的检测结果 7. 下载 HTML 或 JSON 报告 ## 🏗️ 架构 ``` web-vulnerability-scanner/ ├── public/ # Frontend dashboard │ ├── index.html # SPA dashboard (entry point) │ ├── styles.css # Premium dark-mode CSS (37KB) │ └── app.js # Client-side application logic ├── scanner/ # Scanner engine modules │ ├── payloads.js # 77+ SQLi & XSS payloads │ ├── crawler.js # Web crawler with robots.txt │ ├── sqli-scanner.js # SQL injection detection │ ├── xss-scanner.js # XSS detection │ ├── header-checker.js # Security header analysis │ └── report-generator.js # HTML/JSON report generation ├── server.js # Express + WebSocket server ├── test-server.js # Intentionally vulnerable test server ├── package.json # Node.js dependencies ├── start.bat # One-click Windows launcher └── README.md # This file ``` ## 🔍 扫描模块 ### SQL 注入扫描器 - 测试 GET 参数和 POST 表单字段 - 包含 40 个载荷,覆盖基于错误、布尔盲注和时间盲注类别 - 检测 MySQL、PostgreSQL、MSSQL、Oracle 和 SQLite 的错误信息 - 通过响应比对进行盲注检测 ### XSS 扫描器 - 测试反射型和存储型跨站脚本 - 包含 37 个载荷,涵盖 script 标签、事件处理器、SVG/IMG 攻击向量等 - 支持 URL 编码和 HTML 实体编码的变体测试 - 存储型 XSS 持久化验证 ### 安全头检查器 - 审计:X-Frame-Options、Content-Security-Policy、HSTS、X-Content-Type-Options、X-XSS-Protection、Referrer-Policy、Permissions-Policy - 检测服务器特征信息泄露 - 针对每个漏洞提供具体的修复指导 ## 📋 API Endpoints | Method | Endpoint | Description | |--------|----------|-------------| | `POST` | `/api/scan` | 启动一次新的漏洞扫描 | | `GET` | `/api/scan/:id` | 获取扫描状态和结果 | | `GET` | `/api/scan/:id/report` | 下载 HTML 报告 | | `GET` | `/api/scan/:id/report-json` | 下载 JSON 报告 | | `GET` | `/api/scans` | 列出所有扫描历史 | ## 🛡️ 严重程度级别 | Level | Description | |-------|-------------| | 🔴 **Critical** | 已确认的存储型 XSS、已确认的带数据提取的 SQLi | | 🟠 **High** | 已确认的反射型 XSS、已确认的基于错误的 SQLi | | 🟡 **Medium** | 盲注 SQLi 指标、缺失关键安全头 | | 🔵 **Low** | 缺失建议的安全头、轻微信息泄露 | | ⚪ **Info** | 信息类发现(服务器指纹识别、技术栈检测) | ## 🧪 测试服务器 位于端口 4000 的内置测试服务器(`test-server.js`)包含**故意设计的安全漏洞**,用于安全测试: - `/search` — 反射型 XSS(query 参数) - `/user` — 模拟 SQL 注入(错误信息) - `/login` — 表单字段中的 SQLi + 反射型 XSS - `/profile` — 通过 URL 参数触发的反射型 XSS - `/comments` — 存储型 XSS(持久化) - `/admin` — 缺失所有安全头 - `/robots.txt` — 测试爬虫遵循协议 ## 🛠️ 技术栈 - **后端**:Node.js, Express 4.x - **前端**:HTML5, 原生 CSS, 原生 JavaScript - **HTTP Client**:Axios - **HTML Parser**:Cheerio - **WebSocket**:ws - **Robots Parser**:robots-parser ## 📄 许可证 本项目基于 MIT 许可证授权 — 详情请参阅 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 欢迎贡献代码!请随时提交 Pull Request。 1. Fork 该仓库 2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -m 'Add amazing feature'`) 4. 推送到该分支 (`git push origin feature/amazing-feature`) 5. 发起一个 Pull Request

用 ❤️ 为安全社区打造

标签:CISA项目, Express, GNU通用公共许可证, MITM代理, Node.js, Web漏洞扫描, 安全测试, 攻击性安全, 数据可视化, 文件查看, 自定义脚本