> For the complete documentation index, see [llms.txt](https://writeups.ayweth20.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://writeups.ayweth20.com/2023/404ctf-2023/web/la-vie-francaise.md).

# La Vie Française

**Catégorie:** Web - **Difficulté:** Facile

**Description:**

<figure><img src="/files/48RsVbbUf6QCOQRJUtjP" alt=""><figcaption></figcaption></figure>

Lien : <https://la-vie-francaise.challenges.404ctf.fr/>

**Solution:**

Pour ce challenge, nous arrivons sur une page avec un lien pour postuler (s'inscrire) ou pour se connecter :&#x20;

<figure><img src="/files/j0PsIEzH66XmnXjVkGoC" alt="" width="563"><figcaption></figcaption></figure>

Dans un premier temps, nous pouvons tester de nous inscrire pour voir ce qu'il est possible d'avoir. On peut tenter de s'inscrire avec le pseudo admin, mais il y a un message d'erreur :&#x20;

<figure><img src="/files/Sr1vjUzhxbo9qxiMJiwL" alt="" width="443"><figcaption></figcaption></figure>

L'utilisateur *admin* a été désactivé donc il va être compliqué de s'inscrire ou de se connecter en tant qu'admin...

Mais essayons avec un autre combo (*user / pass*). Ici tout est bon. Nous avons pu nous inscrire et nous connecter. Mais rien de vraiment intéressant maintenant : <br>

<figure><img src="/files/xvG658wMX4XJlLVT4XUW" alt="" width="563"><figcaption></figcaption></figure>

Etrange...\
Rien d'intéressant dans le code source, avec d'autres infos (username) c'est pareil, donc il faut continuer à chercher...

Après quelques jours de réfléxion, je me suis dit qu'on pouvait surement faire des injections SQL sur le formulaire de connexion.\
J'ai donc testé et voici le résultat :clown: :&#x20;

<figure><img src="/files/ZfmMkFPhHtlmZICbJcv2" alt="" width="317"><figcaption></figcaption></figure>

Bon bah la SQLi, c'est pas ici... Alors je m'obstine (ou je force dans ma connerie) à trouver l'endroit où faire les injections SQL.\
En regardant la requêtes que nous envoyons au serveur lors de l'accès à l'espace personnel (après la connexion), nous pouvons voir un uuid dans les cookies.\
Et l'injection dans les cookies, c'est possible. Alors testons une injection SQL basique :&#x20;

<figure><img src="/files/g6aEx1v05Fo5GxFYDcCf" alt="" width="503"><figcaption><p>Payload : ' OR 1=1#</p></figcaption></figure>

C'est incroyable, mais ça fonctionne. Alors continuons dans ce sens et allons jusqu'au bout.\
Nous allons dans un premier récupérer les noms des tables :&#x20;

<figure><img src="/files/507jJnC6CB0qn73PtQnR" alt="" width="563"><figcaption><p>Payload : ' UNION SELECT GROUP_CONCAT(table_name), null, null FROM information_schema.tables#</p></figcaption></figure>

En regardant, nous trouvons des tables intéressantes comme user. Maintenant nous allons récupérer le nom de ses colonnes pour en extraire ce qui est intéressant :&#x20;

<figure><img src="/files/wQWgar2faQMlP3gwqA4o" alt="" width="563"><figcaption><p>Payload : ' UNION SELECT GROUP_CONCAT(column_name), null, null FROM information_schema.columns WHERE table_name = 'users' #</p></figcaption></figure>

Maintenant que nous avons les noms des colonnes, nous pouvons récupérer le contenu de la table en utilisant les infos recueillies :&#x20;

<figure><img src="/files/rPo48oZMxvVkd5kUuv95" alt="" width="563"><figcaption><p>Payload : ' UNION SELECT GROUP_CONCAT(username), null, null FROM users #</p></figcaption></figure>

<figure><img src="/files/ZSqTUjMXBCdRuzP1vqsK" alt="" width="563"><figcaption><p>Payload : ' UNION SELECT GROUP_CONCAT(password), null, null FROM users # </p></figcaption></figure>

Maintenant que nous avons récupérer les usernames et les mots de passe de chaque personne, nous allons pouvoir tous les essayer directement sur le site :&#x20;

<figure><img src="/files/DlZerkSWF4kr6jeOtWn0" alt="" width="233"><figcaption></figcaption></figure>

Avec le username "madeleineforestier" et son mot de passe, nous pouvons accéder à un nouvel espace :&#x20;

<figure><img src="/files/eeeXvAhIcPiTWwYUnDZr" alt="" width="520"><figcaption></figcaption></figure>

En allant sur l'espace admin, nous pouvons directement récupérer le flag :&#x20;

<figure><img src="/files/IpzSzHBXpmCk3mfCpTNR" alt="" width="319"><figcaption></figcaption></figure>

<details>

<summary>🚩 FLAG</summary>

```
404CTF{B3w4Re_th3_d3STruct1v3s_Qu0tes}
```

</details>
