
Exploit de prueba de concepto para CVE-2022-22536, que demuestra el contrabando de solicitudes HTTP y el envenenamiento de caché contra servidores SAP NetWeaver para comprometer la confidencialidad, integridad y disponibilidad.
SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server 7.53 y SAP Web Dispatcher son vulnerables a request smuggling y a la concatenación de solicitudes. Un atacante no autenticado puede anteponer datos arbitrarios a la solicitud de una víctima. De esta manera, el atacante puede ejecutar funciones suplantando a la víctima o envenenar las cachés web intermediarias. Un ataque exitoso podría resultar en un compromiso total de la Confidencialidad, Integridad y Disponibilidad del sistema.
Lo que un atacante hace aquí para explotar esta vulnerabilidad es abusar de una desincronización en la forma en que el servidor de aplicaciones SAP procesa y almacena las solicitudes denominadas memory pipes.
Esencialmente, el atacante puede enviar un conjunto de solicitudes HTTP sin autenticación a través del proxy, al servidor SAP.
Y crea una desincronización en las respuestas de tal manera que el atacante puede envenenar la caché del proxy que está en el medio.
La próxima vez que un usuario final válido solicite esa URL al sistema, el proxy en realidad entregaría el payload malicioso que fue modificado o implementado por el atacante.
Una forma sencilla de pensarlo: un atacante podría modificar la pantalla de inicio de sesión de SAP, y la próxima vez que un usuario válido de SAP intente iniciar sesión en el sistema, estaría poniendo sus credenciales en un sitio web controlado por el atacante, y el atacante podrá exfiltrar estas credenciales.
Si un atacante no autenticado es capaz de explotar con éxito las vulnerabilidades ICMAD, el impacto para el negocio podría ser crítico.
Personalmente, creo que la mejor opción para verificar la vulnerabilidad es Burpsuite > verificar manualmente el request smuggling. Hay pocos scripts de python disponibles por ahí, pero parece que el problema está relacionado con el almacenamiento en caché, no estoy seguro de por qué.
Estos scripts son realmente buenos, pero personalmente recomendaría Burpsuite > Verificar manualmente el Request Smuggling.
https://github.com/Onapsis/onapsis_icmad_scanner/blob/master/src/ICMAD_scanner.py @Onapsis
https://github.com/antx-code/CVE-2022-22536/blob/main/CVE-2022-22536.py @antx-code
El script de python básicamente explota la vulnerabilidad y no es algo que escanee y te diga si es vulnerable o no.
El script envía múltiples solicitudes que contienen el payload, lo que causará una "desincronización" en el servidor proxy y, cuando se realiza la siguiente solicitud, el script verifica la respuesta de solicitud incorrecta, lo que demuestra la existencia de la vulnerabilidad.
sap_path que puedes probar:
/sap/admin/public/default.html &
`/sap/public/bc/ur/Login/assets/corbu/sap_logo.png````
GET /sap/admin/public/default.html HTTP/1.1
Host: {{target}}
Content-Length: 82700
Connection: close