Podstawy requestów i szyfrowania w Emdee five for life – Hack The Box

Can you encrypt fast enough?

Po wejściu na podany link, naszym oczom ukaże się formularz, który sugeruje nam przesłanie kodu zaszyfrowanego w MD5.

Po przesłaniu już zaszyfrowanego stringa, dostajemy powiadomienie.

Strona się z nas śmieje i jednocześnie rzuca wyzwanie. Oznacza to dla nas, że będziemy musieli użyć skryptu wykonujący żądanie GET, który pobiera z responsa string, przekształca go w zaszyfrowanego kod i przesyła ponownie na ten sam link. Poniżej znajduje się przygotowany przez nas skrypt w pythonie.

import requests
from lxml import html
import hashlib

with requests.Session() as session:

    #landing page url
    url = 'http://167.71.143.20:31281/'

    # First GET request
    landing_page = session.get(url)

    # get string from the response
    tree = html.fromstring(landing_page.text)
    code_to_decode = tree.xpath('/html/body/h3')[0].text

    # decode string to md5
    md5_code = hashlib.md5(code_to_decode.encode("utf-8")).hexdigest()

    # POST request with our md5 code
    post_request = session.post(url, data = {'hash': md5_code})

    # capture the flag
    print(post_request.text)

W taki sposób dostajemy response, w którym wyświetlona jest szukana przez nas flaga.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.