← Back to list

Ethernaut en español: level 1 “fallback”

Como Project Manager, friki del orden y de los procesos, siempre estoy buscando maneras de mejorar mis habilidades. 👨‍💻

Alexia Cox · 2023-06-15 21:19 · 14 claps · 2.6 min read
#ethernaut #fallback #puzzle #hackeo #español
Open on Medium ↗

Ethernaut en español: level 1 “fallback”

Como Project Manager, friki del orden y de los procesos, siempre estoy buscando maneras de mejorar mis habilidades. 👨‍💻

Me estoy formando en Solidity y, para mantenerme organizada, he estado registrando todos mis aprendizajes y descubrimientos en [NOTION ](https://www.notion.so/product?gspk=a2llbXRpZW5zbzM4MA&gsxid=nnBW2SgDzR9e&pscd=affiliate.notion.so&utm_medium=kiemtienso380&utm_source=affl&gclid=Cj0KCQjw7aqkBhDPARIsAKGa0oKxxsgSBFHo2Fn65DuACiiZIYLvmflnq3rprQpmv361fFgFoW57iVwaAuRlEALw_wcB)(una herramienta fantástica para documentar lo que sea ¡y gratuita!).

A medida que avanzo en mi formación, he decidido poner a prueba mis conocimientos resolviendo los desafíos de **Ethernaut.**

Pero me di cuenta de que toda la información disponible sobre estos desafíos está en inglés, y puede resultar un obstáculo para quienes no dominan ese idioma o simplemente prefieren aprender en español (o en ese momento tiene poca batería neuronal y no quiere pensar en otro idioma).

Así que decidí registrar mi proceso de desarrollo de cada uno de los ejercicios en mi súper NOTION 🗂️, esperando poder ayudar a aquellos que se sienten desmotivados al enfrentarse a conceptos que a menudo se dan por sentado (yo misma he pasado y estoy pasando por esta fase durante mi formación).

Aquí va el primer ejercicio: el nivel 1 “fallback”

Una ayuda:

En la consola (F12), si pones la función help(), sale una tabla con todas la variables y funciones que utiliza la consola de Ethernaut.

Aquí entenderás que cuando se hace referencia a *playeres tu address y cuando se habla de `instance`, *al address del contrato.

Yo hago los ejercicios de Ethernaut en la red de GOERLI, pero hay posibilidad de utilizar también SEPOLIA o MUMBAI(polygon)

En la misma página del ejercicio, pincha en la opción “get new instance” y confirma la acción con tu METAMASK para arrancar con el ejercicio.

PASO 1: entiende cual es el objetivo y busca las vulnerabilidades en el código para conseguirlo.

En este caso hay dos objetivos:

  • pasar a ser el owner del contrato
  • dejar el contrato sin fondos ☠️

En “contributions” se puede ver que el owner tiene 1000 eth. Así que lo fácil sería enviar una cantidad superior para ser el owner. Pero es un desperdicio enorme de gas. ¡No vale como solución! ⛔contribution[msg.sender] = 1000 * (1 ether); };

Mejor mirar otras vías. Para ser el owner del contrato, en la función contribute, hay 2 condiciones:

  1. Que el msg.value tiene que tener menos de 0.001 ether (si no, dará revert) require(msg.value < 0.001 ether);

  2. Si el valor de contributions[msg.sender] es mayor que el contributions[owner] pasará a ser el owner del contrato

if(contributions[msg.sender] > contributions[owner]) {

La función receive tiene una condición interesante para que se asigne un nuevo owner 👉require(msg.value > 0 && contributions[msg.sender > 0);

PASO 2: pasa a ser el owner del contrato

  • Envía la cantidad < 0.001 (por ejemplo en este caso 0.0009) para cumplir con la condición del contribute (confirma esta acción con el METAMASK)
await contract.contribute.sendTransaction({ from: player, value: toWei('0.0009')})
  • Envía cualquier cantidad > 0 para pasar a ser el owner del contrato (confirma esta acción con el METAMASK)
await sendTransaction({from: player, to: contract.address, value: toWei('0.000001')})
  • Chequea si eres el owner del contrato
await contract.owner() 

PASO 3: deja a 0 el balance del contrato

(confirma esta acción con el METAMASK)

await contract.withdraw()
  • Chequea si tienes todo el dinerito y que el contrato principal esté a 0

Y acuérdate de confirmar el ejercicio para ver si has ganado.

await getBalance(player)
await getBalance(instance)

Compartiré también los demás ejercicios. 💪

Si tienes alguna curiosidad sobre este ejercicio, mi trabajo como Project Manager o incluso sobre cómo utilizo Notion para organizarme, ¡no dudes en preguntar! Me encanta compartir conocimientos 🙌

Y recuerda,

¡Que la fuerza del código te acompañe! May the code be with you! 👩‍💻


메타데이터
post_id
4de798cb3f9a
slug
ethernaut-en-español-level-1-fallback-4de798cb3f9a
url
https://medium.com/@alessiavirtual/ethernaut-en-espa%C3%B1ol-level-1-fallback-4de798cb3f9a
canonical_url
https://medium.com/@alessiavirtual/ethernaut-en-espa%C3%B1ol-level-1-fallback-4de798cb3f9a
author_url
https://medium.com/@alessiavirtual
status
ok
fetched_at
2026-07-25 15:44:25