Outils pour utilisateurs

Outils du site


ctf:public:sthack2016:learn

Gotta catch em all - Writeup by toffan

Challenge

http://learn.sthack.fr/
Prouvez que vous êtes le meilleur dresseur pokemon et capturer tous les pokemon le plus vite possible.

Le challenge consiste donc à donner rapidement le nom du pokemon affiché et ce plusieurs fois de suite.

Solution

English


By analysing the sources of the page, we notice that the name of the picture is the number of the displayed pokemon (ex: pikachu is the picture 25.png). So we will need a pokedex num → name. Then, we only need to do the request, get the number of the image and send the name of the pokemon until we got a flag.

pokedex.txt
001 Bulbasaur
002 Ivysaur
003 Venusaur
004 Charmander
...

Through the attempts we notice that Farfetch'd→Farfetchd; Nidoran♂→Nidoran; Nidoran♀→Nidoran

learn.py
import requests
 
# Create the pokedex
pokedex = {}
with open('pokedex.txt', 'r') as f:
    for line in f:
        num, name = line.split(maxsplit=1)
        pokedex[int(num)] = name.strip()
 
# Requests
r = requests.get('http://learn.sthack.fr')
cookies = r.cookies
 
while True:
    # We suppose that if we receive the flag, the page won't have the same
    # number of lines
    lines = r.text.split('\n')
    if len(lines) != 16:
        print(r.text)
        break
 
    num = int(lines[7].strip()[17:][:-7])
    name = pokedex[num]
    r = requests.post(
        'http://learn.sthack.fr', data={'pokemon': name}, cookies=cookies)

And the flag appears…

French


En regardant les sources de la page donnée, on se rend compte que le nom de l'image donnée est le numéro du pokemon affiché (ex: picachu est l'image 25.png). Il nous faudra donc un pokedex num → name. Ensuite, il suffit de faire la requête, recupérer le numéro de l'image et renvoyer le nom du pokemon jusqu'à ce que l'on ait un flag.

pokedex.txt
 

Au fur et à mesure des tentatives on se rend compte que Farfetch'd→Farfetchd; Nidoran♂→Nidoran; Nidoran♀→Nidoran

learn.py
 

Et le flag apparait…

ctf/public/sthack2016/learn.txt · Dernière modification: 2016/10/06 07:12 par arthaum