
ADVERTENCIA: Esta es una aplicación vulnerable para probar el exploit del control de acceso roto de Jetpack < 13.9.1 (CVE-2024-9926). ¡Ejecútela bajo su propio riesgo!
Esta es una aplicación vulnerable para probar el exploit del control de acceso roto Jetpack < 13.9.1 (CVE-2024-9926).
Esta aplicación contiene vulnerabilidades de seguridad graves. ¡Ejecútela bajo su propio riesgo! Se recomienda usar un entorno respaldado y aislado (como una máquina virtual con una instantánea reciente y red solo anfitrión). No suba esta aplicación a ningún servidor expuesto a Internet, ya que se verán comprometidos.
DESCARGO DE RESPONSABILIDAD: No me hago responsable de la forma en que alguien utilice esta aplicación. El único propósito de esta aplicación es ser un escenario de prueba para el exploit del control de acceso roto de Jetpack < 13.9.1 (CVE-2024-9926) y no debe usarse de manera maliciosa. Si su servidor se ve comprometido a través de una instalación de esta aplicación, no es mi responsabilidad, es la responsabilidad de la(s) persona(s) que la subieron e instalaron.
Estos son los pasos para configurar el entorno:
./up.sh para iniciar la composición.El contenedor se llamará vuln-wp-jetpack.
Para desmontar el entorno use el comando ./down.sh o el comando ./down_and_delete.sh para también eliminar imágenes y el volumen de la base de datos.
Echando un vistazo a la corrección, es trivial entender que la única verificación realizada, por ambos métodos get_items_permissions_check() y get_item_permissions_check(), es la pertenencia del usuario al blog.
Ambos métodos se declaran en la clase Contact_Form_Endpoint del archivo automattic/jetpack-forms/src/contact-form/class-contact-form-endpoint.php. Como dice el comentario al inicio de la clase, esta clase es...
Usado como parámetro
rest_controller_classcuando el tipo de publicaciónfeedbackse registra en\Automattic\Jetpack\Forms\ContactForm\Contact_Form
Esto se puede ver en el archivo automattic/jetpack-forms/src/contact-form/class-contact-form-plugin.php en la línea 201, donde se registra el tipo de publicación personalizada feedback.
Los tipos disponibles se pueden recuperar a través de las API REST con una solicitud como la siguiente.
GET /?rest_route=/wp/v2/types
La respuesta contiene el tipo feedback.
Para explotar la vulnerabilidad, una solicitud como la siguiente es suficiente.
GET /?rest_route=/wp/v2/feedback
La solicitud debe contener un encabezado de autorización con una Contraseña de aplicación como la siguiente.
Authorization: Basic eW91cl91c2VybmFtZTp5b3VyX2FwcGxpY2F0aW9uX3Bhc3N3b3Jk
Se puede encontrar un script de exploit en Python aquí.
Este proyecto está licenciado bajo Unlicense - consulte el archivo LICENSE para más detalles.