- El
owner
al publicar el contratoTokenVulnerable
se hace acreedor de100 millones
de tokens. - Luego del ataque, el atacante
attacker
debe poseer100 millones
de tokens y elowner
debe poseer cero - Modifica el archivo
./test/TokenVulnerable.js
en la parte designada. - Añade los contratos necesarios para ejecutar el ataque.
- Ejecuta el test
npx hardhat test test/TokenVulnerable.js
y debería pasar
- delegatecall
- storage layout
npx hardhat test test/TokenVulnerable.js
- El
attacker
es añadido a unwhitelist
y es la única cuenta en dichawhitelist
. - Es posible hacer una transferencia del
whitelist
a otra cuenta que no tenga código. - El
attacker
debe lograr tener un balance superior a 10 NFTs.
- Crea Dos
- Reentrancy
- Precomputación
npx hardhat test test/Camouflage.js
- No has sido invitado a la fiesta y por ello no estás en la lista blanca. Ve la manera de cómo incluirte.
- Puedes postular como aplicante para participar de un sorteo para ingresar a la lista blanca. Sin embargo, no es lo tuyo esperar.
- Ganas si el método
success
cuando es llamando por elattacker
da como resultadotrue
.
- Storage slot position
- Storage layout
npx hardhat test test/NotInvited.js
- Existe un contrato (
NaiveDonation
) que guarda una cantidad de Ether. Sin embargo, está mal resguardado. - Explota el mal patrón de autenticación usado para sustraer todo el balance de dicho contrato.
- Asume que el
owner
del contratoNaiveDonation
, mediante pishing, es convencido de donar1 wei
a una address cualquiera. - Ganas si el método
success
como resultadotrue
.
tx.origin
.constructor
npx hardhat test test/NaiveDonation.js