Flag Command
Catégorie: Web Difficulté: easy Flag: HTB{D3v3l0p3r_t00l5_4r3_b35t_wh4t_y0u_Th1nk??!}
Challenge
Description
Embark on the "Dimensional Escape Quest" where you wake up in a mysterious forest maze that's not quite of this world. Navigate singing squirrels, mischievous nymphs, and grumpy wizards in a whimsical labyrinth that may lead to otherworldly surprises. Will you conquer the enchanted maze or find yourself lost in a different dimension of magical challenges? The journey unfolds in this mystical escape!
Ce challenge tourne sur un docker, disponible sur Github
Analyse du réseau
Si l’on regarde les ressources récupérées par le site, on voit une requête vers /api/options

Tout en bas du JSON reçu, on voit une option “secret”
Il suffit d’envoyer cette valeur pour récupérer le flag

Pour aller un peu plus loin, on peut voir lorsque l’on rentre une commande valide qu’une requête POST est faite sur le chemin /api/monitor
avec comme data un json contenant notre commande

On peut donc faire la requête directement sans passer par le reste par exemple
Script de résolution
import requests
def solve(url):
options = requests.get(f'{url}/api/options').json()
secret = options['allPossibleCommands']['secret'][0]
response = requests.post(f'{url}/api/monitor', json={'command': secret}).json()
flag = response['message']
print(f'Flag: {flag}')
if __name__ == '__main__':
solve('http://83.136.249.138:37969')
Dernière mise à jour
Cet article vous a-t-il été utile ?