加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads

科普 | 智能合約安全審計入門篇 —— 重入漏洞_THE:PumpETH

Author:

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

By:小白@慢霧安全團隊

背景概述

看了一個關于學習solidity的站,里面講了關于solidity智能合約的很多漏洞,考慮到現在針對智能合約的攻擊事件頻頻發生,不法分子盜取的加密資產越來越多,我就想寫一些與智能合約安全審計相關的文章給想了解智能合約安全審計的入門者閱讀,讓一些對智能合約安全審計感興趣的初學者可以學到如何識別一些常見的漏洞和如何利用這些漏洞去做什么事情。這次我們就一起先看一個很經典的漏洞——?重入漏洞。

前置知識

重入漏洞相信大家都有所耳聞了,那么什么是重入漏洞呢?

以太坊智能合約的特點之一是合約之間可以進行相互間的外部調用。同時,以太坊的轉賬不僅僅局限于外部賬戶,合約賬戶同樣可以擁有以太并進行轉賬等操作,且合約在接收以太的時候會觸發fallback函數執行相應的邏輯,這是一種隱藏的外部調用。

穩定幣crvUSD科普創新清算機制LLAMMA,可在抵押品價格下跌時逐步替換為穩定幣:1月17日消息,Curve官方科普其穩定幣crvUSD創新的清算機制LLAMMA,解釋了LLAMMA通過AMM的特性進行針對債務人更友善的清算方式,讓抵押品在價格下跌時逐漸轉移成穩定幣,讓原本要清償的債務有一定程度的穩定幣可以償還,同時在價格回穩時再逐漸把穩定幣換回抵押品,而不是直接的觸發清算導致債務人的虧損。

此前報道,2022年11月23日,去中心化交易平臺CurveFinance開發者發布Curve即將推出的去中心化Stablecoin“crvUSD”的官方代碼和白皮書。[2023/1/17 11:17:13]

我們先給重入漏洞下個定義:可以認為合約中所有的外部調用都是不安全的,都有可能存在重入漏洞。例如:如果外部調用的目標是一個攻擊者可以控制的惡意的合約,那么當被攻擊的合約在調用惡意合約的時候攻擊者可以執行惡意的邏輯然后再重新進入到被攻擊合約的內部,通過這樣的方式來發起一筆非預期的外部調用,從而影響被攻擊合約正常的執行邏輯。

IMF今日發布的加密貨幣科普視頻實為兩年前舊聞,且存在諸多疏漏:國際貨幣基金組織IMF今日在推特上發布了一條關于加密貨幣的科普視頻,這段時長兩分鐘的視頻最初發布于2018年6月。該視頻稱加密貨幣是“貨幣進化的下一步”,但沒有特別提到DLT、區塊鏈,甚至是代幣名稱等術語。BTC、XRP和ETH只出現在說明加密交易的圖形中。盡管這段視頻到目前為止已經獲得了超過13.7萬的點擊量和2900個贊,但來自加密社區的許多反應都是批評的,他們指出了信息中的漏洞和似乎具有誤導性的措辭。

Reddit用戶nanooverbtc稱:“他們犯了很多錯誤,比如把私鑰稱為密碼。”該視頻也沒有討論挖礦或加密貨幣供應。Kraken策略師Pierre Rochard等知名人士表示:“可證明的稀缺性是比特幣有趣的原因,你忘了提這一點。”(Cointelegraph)[2020/8/24]

漏洞示例

動態 | 鏈客社區聯合北京交通廣播推出區塊鏈技術科普節目:12月11日15:15—16:00,區塊鏈技術社區——鏈客區塊鏈技術社區將聯合北京交通廣播FM103.9從零開始為大眾科普解碼區塊鏈技術,蜻蜓FM及北京廣播網同期進行全球直播。首期做客嘉賓為鏈客區塊鏈技術社區創始人郄建軍和百度區塊鏈產品負責人于雅楠。[2019/12/11]

好了,看完上面的前置知識我相信大家對重入漏洞都有了一個大致的了解,那么在真實的環境中開發者寫出什么樣的代碼會出現重入漏洞呢,下面我們來看一個比較典型的有重入漏洞的代碼:

//SPDX-License-Identifier:MITpragmasolidity^0

聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]

functionwithdraw()public{uintbal=balances;require(bal>0);(boolsent,)=msg

//HelperfunctiontocheckthebalanceofthiscontractfunctiongetBalance()publicviewreturns(uint){returnaddress(this)

}

漏洞分析

看到這里大家可能會有疑惑了,上面的代碼就是個普通的充提幣的合約,憑什么說他有重入攻擊呢?我們來看這個合約的withdraw函數,這個函數中的轉賬操作有一個外部調用,所以我們就可以認為這個合約是可能有重入漏洞的,但是具體能否產生危害還需要更深入的分析:

1.所有的外部調用都是不安全的且合約在接收以太的時候會觸發fallback函數執行相應的邏輯,這是一種隱藏的外部調用,這種隱藏的外部調用是否會造成危害呢?

2.我們可以看到在withdraw函數中是先執行外部調用進行轉賬后才將賬戶余額清零的,那我們可不可以在轉賬外部調用的時候構造一個惡意的邏輯合約在合約執行balance=0之前一直循環調用withdraw函數一直提幣從而將合約賬戶清空呢?

下面我們看看攻擊者編寫的攻擊合約中的攻擊手法是否與我們的漏洞分析相同:

攻擊合約

contractAttack{EtherStorepublicetherStore;constructor(address_etherStoreAddress){etherStore=EtherStore(_etherStoreAddress);}//FallbackiscalledwhenEtherStoresendsEthertothiscontract

}functionattack()externalpayable{require(msg

//HelperfunctiontocheckthebalanceofthiscontractfunctiongetBalance()publicviewreturns(uint){returnaddress(this)

}我們看到EtherStore合約是一個充提合約,我們可以在其中充提以太。下面我們將利用攻擊合約將EtherStore合約中用戶的余額清零的:

這里我們將引用三個角色,分別為:

用戶:Alice,Bob

攻擊者:Eve

1.部署EtherStore合約;

2.用戶1和用戶2都分別將1個以太幣充值到EtherStore合約中;

3.攻擊者Eve部署Attack合約時傳入EtherStore合約的地址;

4.攻擊者Eve調用Attack

}作為審計人員

作為審計人員我們需要關注的是重入漏洞的特征:所有涉及到外部合約調用的代碼位置都是不安全的。這樣在審計過程中需要重點關注外部調用,然后推演外部調用可能產生的危害,這樣就能判斷這個地方是否會因為重入點而產生危害。

Tags:THEETH區塊鏈TORtogetherbnb手游下載教程PumpETH區塊鏈技術的特點Restore Truth Token

狗狗幣最新價格
2021上海區塊鏈年度盛典亮點搶先預告 | 獎項征集數據公開,評選啟動,科技榮耀拭目以待!_區塊鏈:買比特幣合法嗎

2021上海區塊鏈年度盛典將于2021年12月18日在上海市科學會堂國際會議廳隆重舉行 這是為所有區塊鏈人 和廣大科技工作者搭建互聯互通的金色舞臺, 全面推進數字化轉型.

1900/1/1 0:00:00
英偉達黃仁勛:元宇宙是虛擬的,但賺錢是真實的_元宇宙:VERS

上周五,英偉達CEO黃仁勛在接受CNBC旗下財經節目《MadMoney》采訪時表示,各大公司之所以蜂擁入局元宇宙,是因為最終在現實世界中能減少成本浪費.

1900/1/1 0:00:00
元宇宙ETF在韓國爆火:過去一個月吸金近3億美元_元宇宙:Pocketful of Quarters

來源:財聯社丨區塊鏈日報 作者:劉蕊 不論是炒幣還是NFT,韓國都始終跑在投資的“潮流前沿”,而最近大熱的投資概念元宇宙上,韓國人同樣沖在最前線——從韓國大熱的元宇宙ETF就可見一斑.

1900/1/1 0:00:00
廣州穗港簽署全國首份跨境區塊鏈電子合約_區塊鏈:聯盟鏈

據南方新聞網消息,11月25日,廣州市政務服務數據管理局正式對外發布“信任廣州”數字化平臺,并與首批10家境內外數字證書服務機構簽訂合作框架協議,初步構建起廣州區塊鏈可信聯盟鏈.

1900/1/1 0:00:00
Solana上AI/ML賽車游戲RaceFi完成290萬美元私募輪和種子輪融資_SOL:LANA

DeFi之道訊,12月4日,Solana上AI/ML賽車游戲RaceFi宣布完成290萬美元的種子輪和私募輪融資.

1900/1/1 0:00:00
比特幣燈塔MicroStrategy子彈快要用光 面對巨額利息 下一步怎么辦?_TRA:RAT

吳說作者|吳卓鋮 本期編輯|ColinWuMicroStrategy的債務“子彈”2020年12月9日,MicroStrategy宣布發行本金總額為6.5億美元的可轉換優先票據.

1900/1/1 0:00:00
ads