
Prova di concetto di CVE-2022-22965 per il report CS4239
Prova di concetto per CVE-2022-22965 (Spring4Shell) per il report CS4239 G410. Adattato da questo PoC per dimostrare il comportamento non patchato e patchato.
In questo repository ci sono 2 programmi di esempio (dockerizzati) con codice sorgente identico. Uno usa una versione vulnerabile di Spring Boot, mentre l'altro usa una versione corretta. Anche Tomcat ha rilasciato una patch per questa vulnerabilità, ma per questa demo viene usata la stessa versione vulnerabile di Tomcat per isolare gli effetti della patch di Spring.
Per eseguire le app demo:
docker compose build
docker compose up
Per eseguire l'exploit:
# vulnerable
python exploit.py --url "http://localhost:8080/helloworld/greeting"
# patched
python exploit.py --url "http://localhost:8081/helloworld/greeting"
Se l'exploit funziona, sarà presente una nuova pagina che consente di eseguire comandi. Esempio di esecuzione di id:
http://localhost:8080/shell.jsp?cmd=id
L'exploit non funziona per la versione corretta: shell.jsp non viene iniettato.