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.