¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
CVE-2023-7173 — Prueba de concepto para CVE-2023-7173, un XSS almacenado en Hospital Management System 1.0, con configuración de Docker y pasos de reproducción. | Kitploit
Versión Vulnerable: Sistema de Gestión Hospitalaria 1.0
Descripción de la Vulnerabilidad
El Cross-Site Scripting (XSS) Almacenado es una vulnerabilidad web grave que permite inyectar código malicioso en un sitio web, almacenarlo en la base de datos y ejecutarlo posteriormente cuando otros usuarios visualizan la página infectada. En este caso específico, la vulnerabilidad se encuentra en la página de inicio de sesión de usuario de un Sistema de Gestión Hospitalaria (HMS), donde el parámetro "Nombre completo" es susceptible a ataques de XSS almacenado. La falta de validación adecuada de entrada y saneamiento de datos permite a un atacante inyectar scripts maliciosos, comprometiendo potencialmente las cuentas de usuario, robando información sensible o realizando acciones no autorizadas.
Pasos para Reproducir (PoC)
Clonar el Repositorio:
root@kitploit:~
git clone https://github.com/sharathc213/CVE-2023-7172.git
cd CVE-2023-7172
Ejecutar Docker Compose:
root@kitploit:~
docker-compose up -d
Acceder al Formulario de Registro de Usuario:
Abra un navegador web y navegue al formulario de registro de usuario en http://localhost:8080/hms/registration.php
Completar el Formulario de Registro:
Ingrese el siguiente payload en el campo "Nombre completo":
Complete los demás campos obligatorios con información válida.
Enviar el Formulario de Registro:
Haga clic en el botón "Enviar" para enviar los datos de registro al servidor.
Verificar el Registro Exitoso:
Reciba un mensaje de confirmación de registro exitoso.
Iniciar Sesión con el Correo Registrado:
Navegue a la página de inicio de sesión en http://localhost:8080/hms/user-login.php.
Ingresar el Correo Registrado:
En el formulario de inicio de sesión, ingrese la dirección de correo electrónico utilizada para el registro.
Iniciar Sesión:
Envíe el formulario de inicio de sesión haciendo clic en el botón "Iniciar Sesión".
Observar el Payload XSS:
Tras un inicio de sesión exitoso, el payload XSS debería activar una ventana de alerta que muestre las cookies del usuario, lo que indica la existencia de la vulnerabilidad de XSS almacenado.
Impacto del XSS Almacenado en un Sistema de Gestión Hospitalaria
Una vulnerabilidad de XSS almacenado en un Sistema de Gestión Hospitalaria puede tener consecuencias graves, incluyendo:
Exposición de Datos de Pacientes:
Posible robo de datos sensibles de pacientes para robo de identidad o fraude.
Riesgos para la Seguridad del Paciente:
Cambios no autorizados en los registros de pacientes podrían poner en peligro la seguridad del paciente.
Acciones No Autorizadas:
El atacante podría ejecutar acciones en nombre de los usuarios, lo que conduce a acceso no autorizado y posible uso indebido.
Erosión de la Confianza:
Daño a la reputación de la instalación de salud debido a la confianza vulnerada.
Incumplimiento Normativo:
Violación de las regulaciones de protección de datos, lo que resulta en multas y consecuencias legales.
Interrupción de los Servicios de Salud:
Posibles interrupciones en la atención al paciente, errores de prescripción o diagnósticos erróneos con graves implicaciones para la salud.
Implicaciones Legales y Éticas:
Responsabilidad legal por cualquier daño causado, junto con preocupaciones éticas sobre la privacidad del paciente.
Consecuencias Financieras:
Costos asociados con la remediación de la brecha, incluyendo investigaciones, actualizaciones del sistema y gastos legales.
Recomendaciones de Mitigación
Para abordar esta vulnerabilidad, implemente las siguientes medidas de mitigación:
Validación y Saneamiento de Entradas:
Implemente rutinas estrictas de validación de entrada y saneamiento de datos para garantizar que el contenido generado por el usuario esté libre de código malicioso. Esto incluye validar los datos tanto en el lado del cliente como en el del servidor.
Aviso Legal
Este proyecto es intencionalmente vulnerable y solo debe utilizarse con fines educativos y de prueba. No lo implemente en un entorno de producción.