Un laboratorio de práctica para evaluar habilidades en seguridad web, simulando una tienda en línea con vulnerabilidades comunes basadas en OWASP Top 10.
- Catálogo de productos con imágenes y descripciones detalladas
- Sistema de búsqueda avanzado con filtros y ordenamiento
- Carrito de compras con gestión de cantidades
- Lista de deseos personalizada
- Comparador de productos con características
- Sistema de reseñas y calificaciones con multimedia
- Historial detallado de pedidos y seguimiento
- Chat de soporte en vivo con archivos adjuntos
- Sistema de cupones y descuentos
- Seguimiento de envíos en tiempo real
- Panel de administración completo
- Sistema de pagos con múltiples métodos
-
Broken Authentication
- Gestión incorrecta de sesiones
- Tokens débiles y predecibles
- Sesiones que no expiran
- Bypass de autenticación en múltiples endpoints
-
Sensitive Data Exposure
- Contraseñas transmitidas sin cifrar
- Información sensible en respuestas HTTP
- Almacenamiento inseguro de datos
- Exposición de tokens y claves en logs
-
Injection (SQL)
- Parámetros de búsqueda no sanitizados
- Inyecciones en campos de administración
- Manipulación de IDs de productos
- Inyección en sistema de reseñas
-
Cross-Site Scripting (XSS)
- Comentarios de usuarios sin filtrar
- Reseñas con scripts maliciosos
- Chat de soporte vulnerable
- Campos de perfil sin sanitizar
-
Insecure Deserialization
- Manipulación de datos del carrito
- Cookies vulnerables
- Objetos JSON no validados
- Deserialización en listas de deseos
-
Security Misconfiguration
- APIs internas expuestas
- Sin límites de intentos de login
- Configuraciones por defecto
- Headers de seguridad ausentes
- Servicios de desarrollo expuestos
-
Broken Access Control
- Acceso a información de otros usuarios
- Bypass de permisos de administrador
- Manipulación de IDs en múltiples endpoints
- Control de acceso horizontal en reseñas
- Acceso no autorizado a chats de soporte
- Manipulación de estados de pago
-
File Upload Vulnerabilities
- Subida de archivos maliciosos
- Bypass de validación de tipos
- Ejecución de código remoto
- Manipulación de metadatos
- Docker (versión 20.10 o superior)
- Docker Compose (versión 2.0 o superior)
- Make
- Git
- Clonar el repositorio:
git clone https://github.com/roozea/CyberShop.git
cd CyberShop
- Ejecutar el script de instalación:
# Modo Evaluación (sin guía)
chmod +x install.sh
sudo ./install.sh
# Modo Revisión (con guía)
sudo ./install.sh --with-guide
La documentación detallada de vulnerabilidades está disponible en GitHub Pages:
La documentación incluye:
- Descripción detallada de cada vulnerabilidad
- Pasos de reproducción con ejemplos
- Payloads de ejemplo para cada vulnerabilidad
- Criterios de evaluación y puntuación
- Guías de mitigación
- Configurar variables de entorno:
cp backend/.env.example backend/.env
- Construir y ejecutar con Docker Compose:
make install
- Acceder a la aplicación:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
- Documentación API: http://localhost:8000/docs
- Panel Admin: http://localhost:3000/admin
CyberShop/
├── backend/ # API y lógica de negocio
│ ├── app/ # Código fuente
│ │ ├── models/ # Modelos de datos
│ │ ├── routes/ # Endpoints API
│ │ └── utils/ # Utilidades
├── frontend/ # Interfaz de usuario
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ │ ├── Navbar.js # Barra de navegación
│ │ │ ├── ProductCard.js # Tarjeta de producto
│ │ │ ├── Reviews.js # Sistema de reseñas
│ │ │ ├── WishList.js # Lista de deseos
│ │ │ └── ProductFilters.js # Filtros de búsqueda
│ │ ├── pages/ # Páginas principales
│ │ │ ├── Home.js # Página principal
│ │ │ ├── Login.js # Inicio de sesión
│ │ │ ├── Register.js # Registro de usuario
│ │ │ └── Cart.js # Carrito de compras
│ │ ├── services/ # Servicios API
│ │ └── App.js # Configuración de rutas
├── docker/ # Configuración de Docker
├── docs/ # Documentación detallada
│ ├── vulnerabilidades/ # Guías por vulnerabilidad
│ ├── criterios/ # Criterios de evaluación
│ └── evaluacion/ # Guías de evaluación
└── Makefile # Comandos de automatización
make install
: Instala y ejecuta la aplicaciónmake stop
: Detiene todos los serviciosmake clean
: Limpia contenedores y volúmenesmake logs
: Muestra logs de los serviciosmake test
: Ejecuta pruebas automatizadasmake reset-db
: Reinicia la base de datos
-
Frontend (Netlify):
- URL: https://zingy-panda-a0d606.netlify.app
- Despliegue automático desde la rama
feature/vulnerable-app
- Características implementadas:
- Catálogo de productos con imágenes de Unsplash
- Sistema de búsqueda y filtrado por categorías
- Banner promocional dinámico
- Diseño responsive con Chakra UI
- Variables de entorno requeridas:
REACT_APP_API_URL
: URL del backendREACT_APP_ENVIRONMENT
: "production"
-
Backend:
- Configurar variables de entorno en producción
- Asegurar conexión a base de datos PostgreSQL
- Configurar CORS según dominio de frontend
- Variables de entorno requeridas:
DATABASE_URL
: URL de conexión PostgreSQLJWT_SECRET
: Clave secreta para tokensCORS_ORIGINS
: Dominios permitidos
Este proyecto está bajo la Licencia MIT.