writeup — [TFools mateitreTryHackMe
Fools mate
TryHackMe Challenge juin 2026 Easy
It's mate in one. You know it, the engine knows it, my grandma knows it. The board says checkmate is one click away. The engine says no. Settle the argument.What is the flag?
nmap navigateur internet
[01] Reconnaissance avec nmap
Je regarde quels ports sont ouverts :
nmap -sC -sV MACHINE_IP
Deux ports sont ouverts : 80 et 22, donc SSH et HTTP.
La connexion SSH est possible avec une clé publique.

On teste Gobuster, sans résultats particuliers.
gobuster dir -u http://MACHINE_IP -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
RAS de ce côté.
[02] Visualiser le site sur le port 80.
On se concentre sur le site affiché sur le port 80.
On découvre une partie d'échecs en cours.
Si on met le roi noir en échecs et mat (déplacer la tour de a1 à a8), une popup apparait avec un message : "I'll shut down your PC if you play that."
Visiblement, il faut effectuer le déplacement interdit pour trouver le flag.

En explorant le code, on voit le fichier /js/app.js où est regroupé la logique : le flag est affiché sous certaines conditions.

Au lieu de se lancer dans une compréhension du code, on peut essayer de jouer les requêtes qui permettent de faire le coup interdit.

On ouvre les "Developers tools" et on essaye de jouer un coup "classique" (de f2 à f3 pour le pion blanc par exemple).
Nous pouvons voir que l'appel est fait à /api/move, avec des paramètres JSON "from:f2" "to:f3".

En curl, on peut envoyer cette commande :
curl -X POST http://MACHINE_IP/api/move -H "Content-Type: application/json" --data '{"from":"a1","to":"a8"}'
Le flag apparait directement dans la réponse.
flag validé
THM{***_***_***}