Milad-Amirjalali/WebSec-Scanner

GitHub: Milad-Amirjalali/WebSec-Scanner

一款基于 Node.js 的综合性 Web 安全扫描工具,提供 HTTP 标头检测、SSL/TLS 审查、端口扫描、子域名发现、CMS 漏洞比对和密钥扫描等多维度安全审计能力。

Stars: 1 | Forks: 0

# WebSec Scanner [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Node](https://img.shields.io/badge/Node-%3E%3D18-green.svg)]() **[English](#english)** | **[فارسی](#فارسی)** ## 英语 ### 功能 - **HTTP 安全标头** — 检查 7 个关键标头 (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-XSS-Protection),对结果进行评分和分级,并标记服务器信息泄露标头。 - **SSL/TLS** — 证书颁发者、有效期、过期警告、正在使用的协议和 cipher。 - **端口扫描器** — 快速/前 100 端口/全系统/全部 65535 端口模式,对未映射的开放端口进行主动服务指纹识别,以及: - **CDN 归属识别** — 检测目标是否位于 Cloudflare/Fastly/Akamai 后面,并标记哪些开放端口是可以被真正确认的(通过真实的 Host/SNI 限定请求),而哪些端口仅仅是开放在 CDN 的共享 anycast IP 上,无法归属于该域名。 - **不可靠网络检测** — 在随机端口上进行 canary 探测,以捕捉 TUN 模式下的 VPN/代理(或配置错误的 Docker 网络)将所有 TCP 端口伪装为已连接的环境,并将整个扫描标记为不可信,而不是报告误报。 - **子域名发现** — 将证书透明度 (通过 Certspotter 获取 crt.sh) 和被动 DNS (HackerTarget) 与精心挑选的字典相结合,渲染交互式网络图谱,并检测**泛解析 DNS**,从而过滤掉那些仅仅因为 catch-all 记录才“解析”的猜测名称。 - **CMS / WordPress 审计** — 通过 meta 标签、资产路径、RSS feed、REST API 和登录页面检测 WordPress;将检测到的版本与小型 CVE 数据库进行交叉比对。 - **Secret 扫描器** — 扫描粘贴的源代码或配置,查找 AWS/Google/Telegram 密钥、私钥、JWT、数据库连接字符串和通用的 API-key 模式(输出已脱敏)。 - **OWASP Top 10 指南** — 参考清单,其中包含每个类别的漏洞代码与修复代码片段对比。 - **双语用户界面** — 标题栏的切换按钮可以在波斯语 (RTL) 和英语 (LTR) 之间切换整个用户界面及所有扫描结果;上次扫描会自动以新语言重新运行。 - **实时进度** — 完整扫描会通过 Server-Sent Events 传输真实进度,而不是模拟的进度条。 ### 技术栈 - **后端**: Node.js, Express - **前端**: 原生 HTML/CSS/JS (无框架),使用 [vis-network](https://visjs.github.io/vis-network/) 绘制子域名图谱 ### 运行 #### 使用 Node.js ``` npm install npm start # 或运行 test suite: npm test ``` 服务器监听于 `http://localhost:3000` (可通过 `PORT` 环境变量覆盖)。 #### 使用 Docker ``` docker compose up --build # 或直接运行: docker build -t websec-scanner . docker run -p 3000:3000 websec-scanner ``` ### 项目结构 ``` server.js Express app, API routes, SSE streaming for the full scan lib/ headerScanner.js HTTP security header checks sslScanner.js SSL/TLS certificate inspection portScanner.js Port scanning, CDN attribution, wildcard/network sanity checks dnsScanner.js DNS record + SPF/DMARC lookup subdomainScanner.js Subdomain discovery, wildcard DNS detection, network graph data cmsScanner.js WordPress detection + CVE audit secretScanner.js Secret/API-key pattern scanning owaspData.js OWASP Top 10 reference content i18n.js fa/en translation helper used across lib/*.js public/ index.html, css/, js/app.js Frontend (bilingual, vanilla JS) test/runTests.js Automated test suite (npm test) ``` ### 许可证 MIT — 详见 [LICENSE](LICENSE)。 ## 波斯语 ### 特性 - **هدرهای امنیتی HTTP** — بررسی ۷ هدر کلیدی (HSTS، CSP، X-Frame-Options، X-Content-Type-Options، Referrer-Policy، Permissions-Policy، X-XSS-Protection)، نمره‌دهی و رتبه‌بندی، و شناسایی هدرهای افشاکننده اطلاعات سرور. - **SSL/TLS** — صادرکننده گواهی، بازه اعتبار، هشدار نزدیک به انقضا، پروتکل و Cipher مورد استفاده. - **اسکنر پورت** — حالت‌های سریع/۱۰۰ پورت برتر/کامل سیستمی/کل ۶۵۵۳۵ پورت، شناسایی فعال سرویس برای پورت‌های ناشناخته، به‌همراه: - **تشخیص انتساب CDN** — وقتی هدف پشت Cloudflare/Fastly/Akamai باشد، تشخیص می‌دهد کدام پورت‌های باز واقعاً با یک درخواست واقعی Host/SNI برای همان دامنه تایید شده‌اند، در برابر پورت‌هایی که فقط روی IP اشتراکی anycast آن CDN باز هستند و ربطی به دامنه ندارند. - **تشخیص شبکه غیرقابل‌اعتماد** — یک پروب کنترلی روی یک پورت تصادفی، محیط‌هایی که VPN/پروکسی با حالت TUN (یا شبکه Docker با تنظیم اشتباه) همه پورت‌ها را به‌صورت مصنوعی «باز» نشان می‌دهند را شناسایی و کل نتیجه اسکن را به‌عنوان غیرقابل‌اعتماد علامت می‌زند. - **کشف ساب‌دومین** — ترکیب Certificate Transparency (از طریق Certspotter) و DNS منفعل (HackerTarget) با یک واژه‌نامه دقیق، رسم نقشه گرافیکی تعاملی شبکه، و تشخیص **DNS از نوع Wildcard** تا نام‌های حدسی که فقط به‌خاطر رکورد catch-all «resolve» می‌شوند فیلتر شوند. - **آنالیز CMS و وردپرس** — شناسایی وردپرس از طریق متا تگ، مسیرهای دارایی، فید RSS، REST API و صفحه ورود؛ تطبیق نسخه شناسایی‌شده با یک پایگاه‌داده کوچک از CVEها. - **اسکنر کلید/Secret** — بررسی سورس‌کد یا کانفیگ چسبانده‌شده برای کلیدهای AWS/گوگل/تلگرام، کلیدهای خصوصی، JWT، رشته اتصال دیتابیس و الگوهای عمومی API Key (با خروجی سانسورشده). - **راهنمای OWASP Top 10** — چک‌لیست مرجع همراه با نمونه کد ناامن در برابر امن برای هر دسته. - **رابط دوزبانه** — دکمه تغییر زبان در هدر، کل رابط و نتیجه اسکن را بین فارسی (راست‌به‌چپ) و انگلیسی (چپ‌به‌راست) عوض می‌کند؛ آخرین اسکن به‌صورت خودکار در زبان جدید دوباره اجرا می‌شود. - **پیشرفت زنده** — اسکن کامل به‌جای نوار پیشرفت شبیه‌سازی‌شده، پیشرفت واقعی را از طریق Server-Sent Events استریم می‌کند. ### 技术 - **بک‌اند**: Node.js، Express - **فرانت‌اند**: HTML/CSS/JS خالص (بدون فریم‌ورک)، [vis-network](https://visjs.github.io/vis-network/) برای نقشه گرافیکی ساب‌دومین‌ها ### 运行 #### 使用 Node.js ``` npm install npm start # 或运行测试: npm test ``` سرور روی `http://localhost:3000` بالا می‌آید (با متغیر محیطی `PORT` قابل تغییر است). #### 使用 Docker ``` docker compose up --build # 或直接运行: docker build -t websec-scanner . docker run -p 3000:3000 websec-scanner ``` ### 项目结构 ``` server.js اپ Express، مسیرهای API، استریم SSE برای اسکن کامل lib/ headerScanner.js بررسی هدرهای امنیتی HTTP sslScanner.js بررسی گواهی SSL/TLS portScanner.js اسکن پورت، تشخیص انتساب CDN، بررسی wildcard/شبکه dnsScanner.js دریافت رکوردهای DNS و SPF/DMARC subdomainScanner.js کشف ساب‌دومین، تشخیص DNS از نوع Wildcard، داده نقشه شبکه cmsScanner.js شناسایی وردپرس و آنالیز CVE secretScanner.js اسکن الگوهای کلید/Secret owaspData.js محتوای مرجع OWASP Top 10 i18n.js هلپر ترجمه fa/en استفاده‌شده در lib/*.js public/ index.html, css/, js/app.js فرانت‌اند (دوزبانه، JS خالص) test/runTests.js مجموعه تست خودکار (npm test) ``` ### 许可证 MIT — به فایل [LICENSE](LICENSE) مراجعه کنید.
标签:GitHub, GNU通用公共许可证, MITM代理, Node.js, StruQ, Web安全, 实时处理, 密码管理, 数据泄露, 自定义脚本, 蓝队分析, 请求拦截