
Un exploit de Prueba de Concepto (PoC) para CVE-2024-10924, una vulnerabilidad en el plugin Really Simple SSL de WordPress que permite omitir la autenticación de dos factores (2FA). Incluye técnicas de mitigación para proteger los sitios WordPress afectados.
📌 Resumen
Este repositorio contiene un exploit de prueba de concepto (PoC) para CVE-2024-10924, una vulnerabilidad en el plugin de WordPress Really Simple SSL que permite omitir la autenticación de dos factores (2FA). Los atacantes pueden explotar esta falla para iniciar sesión como cualquier usuario con un ID válido.
🚨 ADVERTENCIA: Este exploit es únicamente para fines educativos y de investigación. El uso no autorizado contra sistemas que no posees es ilegal.
🚀 Uso del exploit
Requisitos previos:
Instalación: Clona el repositorio: | $ git clone https://github.com/h8sU/wordpress-cve-2024-10924-exploit.git $ cd wordpress-cve-2024-10924-exploit
Ejecuta el exploit: $ python exploit.py <target_url> <user_id>
Ejemplo: $ python exploit.py http://web.com 1
Esto envía una solicitud manipulada para omitir la autenticación 2FA para el user_id especificado.
🛡️ Mitigación y correcciones
Cómo proteger tu sitio WordPress:
Actualiza el plugin - Asegúrate de que "Really Simple SSL" esté actualizado a la última versión en la que se haya parcheado la vulnerabilidad.
Restringe el acceso a la API REST - Utiliza plugins de seguridad como Wordfence para limitar el acceso no autorizado a la API.
Valida los nonces correctamente - Asegúrate de que los nonces sean obligatorios y se validen en el servidor antes de ejecutar acciones críticas.
Utiliza mecanismos de autenticación sólidos - Implementa capas de seguridad adicionales como Firewalls de aplicaciones web (WAF).
Supervisa los registros de acceso - Revisa tus registros para detectar solicitudes API sospechosas dirigidas a rest_route=/reallysimplessl/v1/two_fa/skip_onboarding.
Aplica la corrección de código - Asegúrate de que la función skip_onboarding verifique correctamente la autenticación del usuario y la validación de nonces. El siguiente fragmento de código demuestra una corrección recomendada:
try { $this->check_login_and_get_user($parameters->user_id, $parameters->login_nonce); } catch (Exception $e) { return new WP_REST_Response(['error' => $e->getMessage()], 403); }
Al implementar esta corrección, las solicitudes no autorizadas serán denegadas con una respuesta 403 Forbidden.
⚠️ Descargo de responsabilidad
Este proyecto está destinado únicamente a fines educativos y de investigación en seguridad. Cualquier intento no autorizado de explotar sistemas en producción sin permiso es ilegal y podría conllevar graves consecuencias legales. Úsalo con responsabilidad.