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.