# Fuite en 1791

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

**Description:**

<figure><img src="/files/GoZSqwcDAymLm5FsQnFh" alt=""><figcaption></figcaption></figure>

Lien : <https://ddfc.challenges.404ctf.fr/>

**Solution:**

Pour ce challenge, nous arrivons sur une page avec un lien redirigeant vers une autre page :&#x20;

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

Ici il n'y a rien d'intéressant, alors nous allons directement aller sur l'autre page :&#x20;

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

Ah pas de bol, le lien utilisé n'est plus valide. Regardons le de plus près : \
`https://ddfc.challenges.404ctf.fr/ddfc?expiry=-5625891076&signature=wawF6dC4Hz9g5NyCc3j1KCDcfztFE/sp`

Nous pouvons y voir 2 paramètres : un `expiry` (qui est un timestamp) et une `signature`.

Si nous essayons de changer le timestamp `-5625891076` (qui correspond à la date du *21/09/1791 12:38:05*) par un plus récent, comme `5625891076` (qui correspond à la date du *11/04/2148 12:31:16*) nous avons une autre erreur :&#x20;

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

La signature n'est plus valide et nous empêche donc d'accéder à la page souhaitée.\
Ici nous allons donc devoir chercher des solutions pour contrer ces problèmes.

Au départ, nous pourrions penser à chercher comment est générée la signature en fonction du timestamp, mais ce n'est pas vraiment l'objectif d'un chall web ici...\
La deuxième solution  est de chercher s'il n'y a pas de vulnérabilités à exploiter avec les paramètres d'une URL. C'est là que nous tombons rapidement sur une vulnerabilité nommée : "[Parameter Pollution](https://book.hacktricks.xyz/pentesting-web/parameter-pollution)".

En lisant la documentation de site très bien fait, nous voyons le principe de cette attaque : ajouter des paramètres à la fin de l'URL pour bypasser les restrictions précédentes.

Dans notre cas, le seul paramètre auquel nous pouvons toucher car nous avons compris son fonctionnement c'est le paramètre `expiry`.\
Alors faisons cela avec l'URL suivante en mettant notre timestamp créé à la fin : \
`https://ddfc.challenges.404ctf.fr/ddfc?expiry=-5625891076&signature=wawF6dC4Hz9g5NyCc3j1KCDcfztFE/sp&expiry=5625891076`

Avec ce lien, nous pouvons enfin accéder à la DDFC :&#x20;

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

Et trouver le flag tout en bas de la page :&#x20;

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

<details>

<summary>🚩 FLAG</summary>

```
404CTF{l4_p011uti0n_c_3st_m41}
```

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://writeups.ayweth20.com/2023/404ctf-2023/web/fuite-en-1791.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
