Ir al contenido principal

Programación (V): Solución Reto RingZer0 Team "Hash me please"

En este post la solución a uno de los retos de programación de la plataforma RingZer0 Team.

Este reto tiene el título "Hash me please" y mi valoración sobre su dificultad es: ☆☆.

Su enunciado dice lo siguiente:


You have 2 seconds to hash this message using sha512 algorithm.


Send the answer back using: https://ringzer0team.com/challenges/13/[your_hash].

----- BEGIN MESSAGE -----

EV9uVdNX2iuMnXZBhiJ1oc2fFoL2WFirrhLckp0cxkOL8EcfNL71OZ7jdJc0ekhwrTyC9oFwzk7xOaDsLAkqpiAtRCjWMqi4aHw9V1wlbtJQtc95DjmSrMb9flVRC4MCB9Cn0Yz2h8JBbIxESKn9mp8sAUa2OMvgLXtCMSvUR5mTDJnljAlwPjPg4P9IruO3i8vURQEzMQifqwrAWDXCNCJHhIgz2UsbTOWBvr0788douvPhYDKC5j9dRfDK0WMKAybWP1TN0X2kiHs7b2z6cyaUEEvuq75Rw6DbXnPNaHYifhfgaEdc3eWxIhSYfNGBK9CxmibmQ0vV7A2755aYaXmI44xaI3Bi34GfcIsSyNEwewu9suYsia1d5odDiEMbzihCQzkfdPBhcWhuh6Np6Fs2Uvv2084pgbRXB23EIvMKhU5oQIENeWFYi1R9ZMp6N7UfZNKy8n8f73uOCZrGLXvUOdTEP8At6kyVX9jWmi1kbmYDbgaN3wxHzhbegCxcNWYBW8n8geiir7MsdM568tExBGCH80KMNydzxqxEvGMMDo5G00DZk7nLDPjCGTejihIGy6aTDNw61rDSi7Is4V4yBd17X5g6dPDBLDlegIb8ZFQ8CorxalVBpMydIEaLjDdV7p0dX1cNwSLZ73m8e8zuLXxjsxVC0ZnYee1254GsNihKbuIfs8A3VXcelYHcNV0RZSKUMhcppk0qEzwWxWPjKSoVGVYjGO1vxCg9JipYtffXFCK3pqdZ9rLFdzPJeH4B9bBJjQyDWErs61lliobhGNMJdsii0dJZebzoSXREr9Wo08A8nBfTfSsibBq1F0RK1gZJ4HemG1AwZ0vcsBWxjfFlGWccMTND0CdU9h6F8x2Ynn1FON3YSy9pkcsXV5rMxuwxCt2BQVp49gAOUtDDSCT3EbQq782vspSUJLlpwBkwIKas4DWN6FGBHnRElKZE0HpziBPF201BA2UvvG9rbFSJTAd5b2A1APrJh7f9X7BoZlJkRICTeksYLwUN
----- END MESSAGE -----

Solución: utilizo el siguiente script de Python.


import requests
import hashlib
import re
s = requests.session()

url = 'https://ringzer0team.com'

payload = {'username':  'tu usuario', 'password': 'tu contraseña'}

s.post(url+'/login',payload)
r2 = s.get(url+'/challenges/13')

#Obtener el mensaje
message = re.findall('----- BEGIN MESSAGE -----< br />\r\n\t\t(.*?)< br />\r\n\t\t----- END MESSAGE -----', r2.text, re.DOTALL)
message = message[0]
print('message = ', message)

#Hash sha512 del mensaje
hash_object = hashlib.sha512(str.encode(message))
hex_dig = hash_object.hexdigest()
print('hash = ', hex_dig)

#Obtener la solucion
r3 = s.get(url+'/challenges/13/'+str(hex_dig))
flag = re.findall('< div class="alert alert-info">(.*?)< /div>', r3.text, re.DOTALL)
print(flag)

Ejecuto este script:
Y obtengo la solución: FLAG-mukgu5g2w932t2kx1nqnhhlhy4.

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema...

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat...

Criptografía (CLXXXIV): Soluciones Retos criptografía de CyberOlympics 2017

En este post pongo las soluciones a los retos de  criptografía que he ido resolviendo de la edición del año 2017 de CyberOlympics , competición en modalidad  'on-line' , estilo  'Capture the Flag'  y formato  'Jeopardy'  dirigida a centros educativos y organizada por el Instituto Nacional de Ciberseguridad (INCIBE) en el marco de la actividad llamada CyberCamp. En esta edición la mayoría de los retos presentaron un  nivel  de dificultad bajo  ( ★ ★ ☆☆☆ ) , lo que entiendo adecuado por el colectivo al que van dirigidos. Las soluciones al resto de desafíos de criptografía de esta edición, cuyos archivos asociados tenga (no me han pasado todos) y que consiga resolver, las pondré en otra entrada. Reto 1 (Criptografía) : Enunciado : Todas las mañanas cuando me despierto, me miro en el espejo y no entiendo lo que veo. Hoy me he levantado dando un salto mortal y no voy a apartarme de mi “otro yo” hasta que no descubra el mensaje. Parece q...