
Exploit proof-of-concept per CVE-2022-22536, che dimostra lo smuggling di richieste HTTP e l'avvelenamento della cache contro i server SAP NetWeaver per compromettere riservatezza, integrità e disponibilità.
SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server 7.53 e SAP Web Dispatcher sono vulnerabili a request smuggling e concatenazione delle richieste. Un attaccante non autenticato può anteporre dati arbitrari alla richiesta di una vittima. In questo modo, l'attaccante può eseguire funzioni impersonando la vittima o avvelenare le cache Web intermedie. Un attacco riuscito potrebbe compromettere completamente la riservatezza, l'integrità e la disponibilità del sistema.
Quello che un attaccante fa qui per sfruttare questa vulnerabilità è abusare di una desincronizzazione nel modo in cui il server applicativo SAP elabora e memorizza le richieste, chiamate memory pipes.
In sostanza, l'attaccante può inviare una serie di richieste HTTP senza autenticazione attraverso il proxy al server SAP.
E crea una desincronizzazione nelle risposte in modo che l'attaccante possa avvelenare la cache del proxy che si trova in mezzo.
La volta successiva in cui un utente finale valido richiede quell'URL al sistema, il proxy consegnerà in realtà il payload dannoso che è stato modificato o implementato dall'attaccante.
Un modo semplice per pensarci: un attaccante potrebbe modificare la schermata di accesso SAP e la volta successiva in cui un utente SAP valido tenta di accedere al sistema, inserirebbe le proprie credenziali in un sito web controllato dall'attaccante, che sarà in grado di esfiltrare queste credenziali.
Se un attaccante non autenticato riesce a sfruttare con successo le vulnerabilità ICMAD, l'impatto sull'azienda potrebbe essere critico.
Personalmente, penso che l'opzione migliore per verificare la vulnerabilità sia Burpsuite > controllare manualmente il request smuggling. Ci sono pochi script Python disponibili in giro, ma sembra che il problema riguardi la cache, non so perché.
Questi script sono davvero validi, ma personalmente consiglio Burpsuite > Verifica manuale del 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
Lo script Python in pratica sfrutta la vulnerabilità e non è qualcosa che esegue una scansione e ti dice se sei semplicemente vulnerabile o meno.
Lo script invia più richieste contenenti il payload che causerà la “desincronizzazione” sul server proxy e, quando viene effettuata la richiesta successiva, lo script verifica la risposta di richiesta non valida, il che prova l'esistenza della vulnerabilità.
sap_path che puoi testare:
/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