Emdee five for life
🔍 Dificultad: Fácil
Entramos en el host que nos proporcionan.

Encriptamos la cadena en MD5 tal como se nos pide.
echo -n "Mlji3Pbgj4zaofjOMDvu" | md5sum

Pegamos el resultado.

¡Demasiado lento! Parece que necesitamos hacer un script para conseguir la flag.
Defino la URL del reto en
URL
, que apunta a un servidor en la direcciónhttp://83.136.249.46:56367
.Inicio una sesión con
requests
, lo que me permite mantener cookies o autenticaciones necesarias.Hago una petición GET a la URL para obtener el contenido de la página web.
Uso BeautifulSoup para analizar el HTML de la respuesta y buscar elementos
<h3>
. Normalmente, dentro de estos elementos está el texto que necesito procesar.Extraigo el texto dentro de
<h3>
y lo guardo en la variablemd5
. Este texto parece ser un valor que debo transformar.Aplico la función hash MD5 sobre ese texto usando
hashlib.md5()
, y luego convierto el resultado en un formato hexadecimal (hexdigest()
). Este hash será la respuesta esperada por el reto.Creo un diccionario con el hash MD5 (
data = {'hash': md5_hash}
), que será enviado en una petición POST al servidor.Envió el hash de vuelta al servidor con
request.post(url=URL, data=data)
, esperando que me responda con algún mensaje, como “¡Correcto!” o “Flag: …”.Imprimo la respuesta del servidor, lo que probablemente contenga la flag o algún otro mensaje de confirmación.
from bs4 import BeautifulSoup
import requests
import hashlib
URL = "http://83.136.249.46:56367"
request = requests.session()
page = request.get(URL)
soup = BeautifulSoup(page.text, "html.parser")
for i in soup.findAll('h3'):
md5 = (i.get_text())
#print(md5)
hash_object = hashlib.md5(md5.encode())
md5_hash = hash_object.hexdigest()
#print(md5_hash)
data = {'hash': md5_hash}
output = request.post(url = URL, data = data)
print(output.text)
Ejecutamos.
python3 prueba.py

Last updated
Was this helpful?