francovillagra/web-vulnerability-scanner

GitHub: francovillagra/web-vulnerability-scanner

Stars: 0 | Forks: 0

# 🛡️ Web Vulnerability Scanner Una herramienta web para detectar vulnerabilidades de seguridad en sitios web. Analiza headers HTTP, certificados SSL, cookies, redirecciones y más — sin necesidad de registro ni instalación. 🔗 **[Demo en vivo](https://web-vulnerability-scanner-red.vercel.app)** ![Scanner Screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f07d5be773091034.webp) ## ✨ Funcionalidades ### 🔍 Detección de vulnerabilidades - **SSL/TLS** — Valida certificados: detecta certificados inválidos, vencidos o con cadena incompleta - **Security Headers** — Verifica la presencia de headers críticos: - `Content-Security-Policy` (CSP) - `Strict-Transport-Security` (HSTS) - `X-Frame-Options` - `X-Content-Type-Options` - `Permissions-Policy` - **Cookies inseguras** — Detecta cookies sin flags `Secure`, `HttpOnly` o `SameSite` - **Information Disclosure** — Identifica comentarios HTML, versiones expuestas en headers y stack traces - **Open Redirect** — Detecta redirecciones abiertas que pueden ser explotadas - **Server Info Disclosure** — Detecta headers `Server` y `X-Powered-By` con información sensible ### 📊 Dashboard visual - Gráfico de dona con distribución por severidad (Crítico / Alto / Medio / Bajo) - Cards con contadores animados por nivel de severidad - Lista detallada de vulnerabilidades con descripción y recomendación - Historial de scans guardado en `localStorage` (últimos 20) - Exportar reporte completo en formato **JSON** ### 🔒 Seguridad del scanner - Prevención de **SSRF** (bloquea localhost, IPs privadas y metadata endpoints de cloud) - Validación de URL con protocolo requerido (`http://` o `https://`) - Manejo robusto de errores: timeout, SSL inválido, DNS, unreachable ## 🛠️ Stack tecnológico | Tecnología | Uso | |------------|-----| | **Next.js 16** | Framework fullstack con App Router | | **React 19** | UI con hooks y componentes funcionales | | **TypeScript** | Tipado estático en todo el proyecto | | **Tailwind CSS 4** | Estilos utilitarios | | **Axios** | HTTP requests con soporte avanzado de SSL | | **Cheerio** | Parsing de HTML para análisis de contenido | | **Zod** | Validación de schemas y inputs | | **date-fns** | Formateo de fechas en el historial | | **Recharts** | Gráfico de dona para distribución de severidades | | **Vercel** | Deploy y hosting en producción | ## 🚀 Demo Accedé a la demo en vivo sin registro: **[https://web-vulnerability-scanner-red.vercel.app](https://web-vulnerability-scanner-red.vercel.app)** ### Sitios de prueba recomendados: - `https://example.com` — Sitio simple con vulnerabilidades básicas - `https://google.com` — Sitio real con buenas prácticas - `https://github.com` — Sitio con headers de seguridad robustos - `http://testphp.vulnweb.com` — Sitio inseguro diseñado para testing ⚠️ ## 💻 Correr localmente ### Prerequisitos - Node.js 18+ - npm o yarn ### Instalación # 1. Clonar el repositorio git clone https://github.com/francovillagra/web-vulnerability-scanner.git cd web-vulnerability-scanner # 2. Instalar dependencias npm install # 3. Crear archivo de variables de entorno cp .env.example .env.local # No se requieren variables de entorno para el scanner básico # 4. Correr en modo desarrollo npm run dev Abrí [http://localhost:3000](http://localhost:3000) en tu browser. ### Build de producción npm run build npm start ## 📁 Estructura del proyecto web-vulnerability-scanner/ ├── app/ │ ├── page.tsx # Página principal con el scanner │ └── api/ │ └── scan/ │ └── route.ts # Endpoint del scanner ├── components/ │ ├── ScanHistory.tsx # Historial de scans │ └── ExportButton.tsx # Exportar reporte JSON ├── lib/ │ ├── scanner.ts # Lógica principal del scanner │ └── validations.ts # Schemas de validación con Zod └── public/ └── screenshot.png # Screenshot para el README ## 🔐 Consideraciones de seguridad Este scanner está diseñado para uso **ético y responsable**: - ✅ Usalo solo en sitios de tu propiedad o con autorización explícita - ✅ El scanner no guarda datos en servidores — todo el historial es local (localStorage) - ✅ Prevención de SSRF implementada para bloquear acceso a redes internas - ❌ No usar para escanear sitios sin autorización ## 📈 Roadmap - [ ] Detección de XSS reflejado - [ ] Detección de SQL Injection - [ ] Autenticación con historial en la nube - [ ] API pública con rate limiting - [ ] Reportes en PDF - [ ] Modo CLI ## 👨‍💻 Autor **Franco Villagra** - Portfolio: [francoverse.vercel.app](https://francoverse.vercel.app) - GitHub: [@francovillagra](https://github.com/francovillagra) ## 📄 Licencia MIT — libre para usar, modificar y distribuir.
标签:自动化攻击