# L'Inondation

**Catégorie:** Programmation - **Difficulté:** Intro

**Description:**

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2FMQVtg5oTyqnGuNrHxe0O%2Fenonce.png?alt=media&#x26;token=7cfa3ce4-8640-488f-a1a2-d26ee7f0b2a8" alt=""><figcaption></figcaption></figure>

Netcat : *`nc challenges.404ctf.fr 31420`*

**Solution:**

Pour ce challenge, nous avions qu'une seule tâche à faire : compter les rhynos et renvoyer la valeur trouvée au bot. Ceci dit, c'est facile à dire, mais en partant de zéro, ça peut être compliqué 😂\
Voici un exemple lors du lancement du netcat : <br>

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2FhVtoYpYQZfHKQ4iujuv9%2Fimage.png?alt=media&#x26;token=34e29674-df20-4a1c-aadd-26a0fb3c783a" alt="" width="563"><figcaption></figcaption></figure>

Ici pas facile de compter les 137 rhinos à la main en moins de 5 secondes...\
Il faut donc développer un petit avec pwntools pour nous aider sur cette tâche.\
Voici donc le script qui règlera le souci et nous donnera le flag :&#x20;

```python
from pwn import *

r = remote("challenges.404ctf.fr", 31420)
r.recvuntil(b"comptes-moi le nombre de rhinos par photo.")

while True:
    try :
        sortie = ""

        while "Votre réponse :" not in sortie:
            answer = r.recvline().decode("utf-8")
            sortie += answer
            print(answer)

        r.sendline((str(s.count("~c`°^)"))).encode("utf-8"))
        answer = r.recvline().decode("utf-8")
        print(answer)
            
    except EOFError:
        print(r.recvline().decode("utf-8"))
        print(r.recvline().decode("utf-8"))

r.close()
```

Ce code va dans un premier temps se connecter au netcat fourni. Puis tant que la variable sortie ne contient pas le terme "Votre réponse :" il va continuer à compter le nombre de rhinos dans la sortie (motif : *``-c`°^)``*) et renvoyer le résultat au bon moment.\
Voici le résultat final : <br>

<figure><img src="https://4219205392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fybn4btwQnvitOl9uXz9p%2Fuploads%2FGUBlKb9mwF83FuPogAfF%2Fimage.png?alt=media&#x26;token=50427001-2b14-4e8d-9ee7-ee125c16fd53" alt="" width="563"><figcaption></figcaption></figure>

Après un nombre (incalculable) de calculs, nous récupérons enfin notre précieux.

<details>

<summary>🚩 FLAG</summary>

```
404CTF{4h,_l3s_P0uvo1rs_d3_l'iNforM4tiqu3!}
```

</details>
