Tenemos un compromiso interno en el equipo de IdeasLocas con lo dejar pasar un mes sin publicar un nuevo reto en la plataforma de
Level_UP! Por esta razón traemos el nuevo reto del mes de mayo. En esta ocasión toca un poco de forense básico en la
Blockchain. Hay que recordar que
en la pasada RootedCON la presentamos y mostramos nuestros objetivos respecto a ella. Nuestra intención es publicar un writeup mensual sobre algún reto y publicar un nuevo reto con el que la comunidad pueda seguir su aprendizaje.
Figura 1: Nuevo reto Hacking Web3 de Level_UP! -> Forensic Ouch!
- Aprende cómo rastrear la interacciones en Blockchain
A modo de resumen rápido os dejamos el listado de artículos y solucionarios de retos de
Level_UP! que tenemos publicados y os animamos a que “
juguéis” con este mundo de la seguridad en
Web3, ya que es apasionante cuando uno conoce los ‘basics’ de la Web3:
Hoy toca publicar nuevo reto, el cual ya está disponible en el repositorio de
Github de Level_UP! El reto de hoy trabaja sobre conceptos de forense y de rastreo en la forma en que los
SmartContracts ejecutan las acciones. La frase de “
todo queda en la Blockchain” no siempre es correcta, pero en este caso sí. Si quieres saber qué ha ocurrido en ese contrato del reto deberás analizarlo.
Como se puede ver en la imagen,
forensich_ouch es el reto número
12 (ya que empezamos en el 0, aunque el reto
0 sea un tutorial guiado). La puntuación que el usuario puede obtener con el nuevo reto es de
150 puntos y la dificultad del reto supone un nivel intermedio. No es un reto complejo, pero si se debe tener algunos conocimientos sobre el funcionamiento interno de los
SmartContracts así de cómo los datos son registrados en la
Blockchain.
Cuando uno entra al reto y lo quiere desplegar para jugarlo, se encontrará con la introducción de lo que se necesita hacer en el reto. Además, nos muestran una serie de funciones que solo el propietario del contrato podrá ejecutar.
Reto Forensic_Ouch
Cuando se despliega el reto a través del botón ‘
Deploy Contract’ se debe acceder a las ‘
Dev Tools’ del navegador. Desde la consola de desarrollo del navegador, se puede acceder a través del comando ‘help’ o ‘
help()’ (depende del navegador) a la ayuda. Disponemos de tres objetos con los que interactuar:
player,
base y
contract.
Figura 4: Reto Forensic Ouch!
El objeto player almacena la dirección pública del usuario con el que estamos jugando en la plataforma. El objeto base representa la conexión con el contrato base de la plataforma, es el contrato que gestiona los puntos, los jugadores que están jugando, etcétera. Por último, y una vez está desplegado el reto, tenemos el objeto
contract, el cual nos permite interactuar con el contrato del reto.
El algoritmo
Keccak será importante en este reto, es recomendable utilizar recursos como el de
OnlineTools y el uso de Keccak. La conexión a la
Blockchain se puede hacer de muchos modos, recomendamos usar
Python o
JS para usar la librería
Web3. Ánimo. Una vez que tengamos la
flag, acordaros de validar los puntos en la plataforma, tal y como se puede ver en la siguiente imagen:
Figura 7: Validación de Flag
Los chicos y chicas de
Escuela 42 están realizando el reto durante estas semanas. La acogida ha sido bastante buena y pronto os contaremos más cosas de lo ocurrido en ese hackathon de
Level_UP! en 42. Pronto más solucionarios y más retos. El mes de junio está a la vuelta de la esquina.