# L'Antiquaire, tête en l'air

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

{% file src="/files/IZbxYp8kzaVOpNlXqW4c" %}

**Description:**

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

**Solution:**

Pour ce challenge de web3, nous avons un fichier contenant un long bloc de texte hexa.\
Nous pouvons chercher avec des petits bouts sur internet mais rien de bien intéressant à part quelques résultats qui deviennent très vite inutiles.

L'autre méthode à utiliser est de convertir ce texte hexa en ASCII pour voir si nous ne pouvons pas trouver quelque chose d'intéressant. Pour ce faire, nous allons utiliser [CyberChef](https://gchq.github.io/CyberChef/#recipe=From_Hex\('Auto'\)) :&#x20;

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

Nous trouvons 2 éléments "lisibles" et potentiellement intéressants :&#x20;

* Un fichier .json : /ipfs/bafybeia5g2umnaq5x5bt5drt2jodpsvfiauv5mowjv6mu7q5tmqufmo47i/metadata.json
* Une URL : <https://shorturl.ac/mysecretpassword>

Le plus simple, c'est d'aller sur l'URL (et plus en plus "mysecretpassword" ça sonne bien).\
Voilà le résultat (prévisible :joy:) :&#x20;

<figure><img src="/files/18fpjZVrEdqd5xFOmS8l" alt=""><figcaption><p><em>Un petit rickroll, ça fait toujours plaisir</em></p></figcaption></figure>

Bon, vu que l'URL ne sert à rien, il faut se concentrer sur le fichier .json.\
Le format ressemble fortement à une URL mais en ajoutant http ou https devant, rien est retourné.\
Mais au début de cette "URL", nous avons une indication : *`ipfs`*. Qu'est-ce donc que ça ?\
En allant sur la [doc d'IPFS](https://docs.ipfs.tech/how-to/address-ipfs-on-web/), nous pouvons voir le format d'une URL : *`https://ipfs.io/ipfs/<CID>`*

C'est exactement ce qu'il nous faut. Maintenant nous avons juste à ajuster notre URL trouvée au début : <https://ipfs.io/ipfs/bafybeia5g2umnaq5x5bt5drt2jodpsvfiauv5mowjv6mu7q5tmqufmo47i/metadata.json>\
En cliquant sur ce lien, nous arrivons sur un document json (normal) nous donnant l'adresse d'une image :&#x20;

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

Alors changeons notre URL IPFS et rendons-nous sur celle de l'image : <https://ipfs.io/ipfs/bafybeic6ea7qi5ctdp6s6msddd7hwuic3boumwknrirlakftr2yrgnfiga/mystere.png>

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

Nous obtenons une image avec un mot "inconnu" (en dehors de mes connaissances) et une adresse Ethereum.\
Alors après quelques recherches, Sepolia est un testnet Ethereum. Voici le [site](https://sepolia.etherscan.io/).\
En arrivant sur la page d'accueil, nous avons directement un input pour chercher une adresse, un token ou autre.\
Rentrons l'[adresse Ethereum](https://sepolia.etherscan.io/address/0x96c962235f42c687bc9354edac6dfa6ede73c188) et voyons ce que ça donne :&#x20;

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

Nous avons accès aux transactions ainsi qu'à toutes les infos.\
En cherchant un peu, nous pouvons consulter les infos du contrat et trouver ce que nous [cherchons](https://sepolia.etherscan.io/address/0x96c962235f42c687bc9354edac6dfa6ede73c188#code) :&#x20;

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

<details>

<summary>🚩 FLAG</summary>

```
404CTF{M3M3_P45_13_73MP5_D3_53CH4UFF3r_QU3_C357_D3J4_F1N1!}
```

</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/web3/lantiquaire-tete-en-lair.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.
