
Prova de conceito de exploit para CVE-2022-22536, demonstrando contrabando de solicitações HTTP e envenenamento de cache contra servidores SAP NetWeaver para comprometer a confidencialidade, integridade e disponibilidade.
O SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server 7.53 e SAP Web Dispatcher são vulneráveis a contrabando de requisições e concatenação de requisições. Um atacante não autenticado pode antepor dados arbitrários à requisição de uma vítima. Dessa forma, o atacante pode executar funções se passando pela vítima ou envenenar caches Web intermediários. Um ataque bem-sucedido pode resultar no comprometimento total da Confidencialidade, Integridade e Disponibilidade do sistema.
O que um atacante está fazendo aqui para explorar esta vulnerabilidade é abusar de uma dessincronização na forma como o servidor de aplicações SAP processa e armazena requisições chamadas de pipes de memória.
Essencialmente, o atacante pode enviar um conjunto de requisições HTTP sem autenticação através do proxy para o servidor SAP.
E isso cria uma dessincronização nas respostas de forma que o atacante pode envenenar o cache do proxy que está no meio.
Da próxima vez que um usuário final válido solicitar essa URL do sistema, o proxy irá entregar o payload malicioso que foi modificado ou implementado pelo atacante.
Uma maneira fácil de pensar sobre isso: um atacante poderia modificar a tela de login do SAP, e da próxima vez que um usuário SAP válido tentar fazer login no sistema, ele estaria colocando suas credenciais em um site controlado pelo atacante, que será capaz de exfiltrar essas credenciais.
Se um atacante não autenticado for capaz de explorar com sucesso as vulnerabilidades ICMAD, o impacto para os negócios pode ser crítico.
Pessoalmente, o que acho ser a melhor opção para verificar a vulnerabilidade é o Burpsuite > verificar o contrabando de requisições manualmente. Existem scripts Python limitados disponíveis, mas parece que eles estão enfrentando problemas de cache, não sei por quê.
Esses scripts são muito bons, mas pessoalmente recomendo o Burpsuite > Verificar manualmente o 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
O script Python basicamente está explorando a vulnerabilidade e não é algo que esteja escaneando e informando se é ou não vulnerável.
O script envia múltiplas requisições contendo o payload que causa a “Dessincronização” no servidor proxy e, quando a próxima requisição é feita, o script verifica a resposta de requisição inválida, o que prova a existência da vulnerabilidade.
caminho sap que você pode testar:
/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