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

# 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>
