October 1, 2023
Решение задач AMAZEX-DSS-PARIS. MagicETH
https://github.com/secureum/AMAZEX-DSS-PARIS/tree/main/src/1_MagicETH
Протокол был взломан и украдены 1000 mETH
- Вернуть украденые1000 mETH
с кошелька exploiter.
Изучив код протокола, замечаем что на 35 строке допущена ошибка. Перепутаны местами адреса msg.sender и account.
Это значит что происходит проверка "Сколько токенов мы разрешили сжечь/перевести с account'а", а не он нам.
Так же мы видим в 39 строке, что уже нам дается approve на снятие токенов с accout'а
Воспользуемся данной уязвимостью что бы вернуть украденные токены.
- Сами даем approve на
1000 mETH exploiter'у
- Вызываем функцию burnFrom , что бы самим получить approve от
exploiter'a
- Переводим себе токены с адреса
exploiter'a
- Обмениваем mETH на нативный ETH используя функцию withdraw