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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://writeups.ayweth20.com/2023/404ctf-2023/web3/lantiquaire-tete-en-lair.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
