買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > 酷幣 > Info

ETH:科普 | 智能合約安全審計入門篇 —— 重入漏洞_TORJ幣

Author:

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

By:小白@慢霧安全團隊

背景概述

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

前置知識

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

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

動態 | 人民日報官方微博科普區塊鏈 強調區塊鏈不等于比特幣:人民日報官方微博今早發表9圖科普區塊鏈。其中涉及區塊鏈的特點有:1、安全;2、不可篡改;3、可訪問;4、無第三方。區塊鏈對未來的影響:1、不需繁瑣個人證明;2、看病避免反復檢查;3、旅行消費更加便捷;4、交易無需第三方。同時強調,區塊鏈不等于比特幣。比特幣只是區塊鏈技術的一種應用,區塊鏈還有醫療衛生、食品安全、版權保護等諸多應用領域。[2019/10/28]

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

動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]

漏洞示例

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

//SPDX-License-Identifier:MITpragmasolidity^0

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

金色財經獨家分析 監管機構、媒體、業界提示詐騙風險 區塊鏈科普道阻且長:新華社今日發文表示,近來“區塊鏈”類詐騙案件頻發,不法分子以“投資虛擬貨幣周期短、收益高、風險低”為借口,騙取用戶信任并誘使其轉賬進行投資。無獨有偶,同日消息,騰訊手機管家安全專家也提醒此類風險,并從技術上提出防騙建議。在美國,監管機構警示加密貨幣欺詐現象普遍承諾高收益而不披露潛在風險。金色財經獨家分析,不法分子假借新技術之名進行詐騙,一方面是抓住民眾趨利的心理,一方面反映出區塊鏈科普的欠缺。區塊鏈是新興科技和底層技術并有改變社會生產關系的潛力,應該進行系統性的科普教育,當前,部分大學已經開始設置了區塊鏈課程,但對于普通民眾仍然有科普的需求,人們應該了解到系統和正確的知識,不僅要了解區塊鏈的好,也要明確局限和弊端,以在高收益的誘惑下,保持清醒客觀。[2018/4/11]

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

財政部副部長朱光耀:數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展:今日,在中國發展高層論壇2018年會上,財政部副部長朱光耀表示:“數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展。也要關注數字經濟的其他影響,包括稅收征管、反洗錢監管措施等要跟上。”[2018/3/25]

}

漏洞分析

看到這里大家可能會有疑惑了,上面的代碼就是個普通的充提幣的合約,憑什么說他有重入攻擊呢?我們來看這個合約的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:區塊鏈THETORETH區塊鏈騙了多少人togetherbnb手游下載教程TORJ幣ethylpenta

酷幣
元宇宙:摩根士丹利:到2030年,奢侈品牌的NFT市場規模可能會達到560億美元_Diamond Hands

原標題:《耐克、阿迪、LV等服裝品牌的元宇宙暢想》近些日子,元宇宙相關的話題非常的火熱。元宇宙被譽為是下一代互聯網。許多科技公司都因為元宇宙未來的巨大潛力而紛紛布局元宇宙相關業務.

1900/1/1 0:00:00
元宇宙:報告:黑客攻擊谷歌云賬戶并用于加密貨幣挖礦_元宇宙是不是個騙局錢能拿回來嗎

據CoinDesk11月27日消息,根據一份新報告,被黑客入侵的谷歌云賬戶中,86%被“惡意行為者”用于加密貨幣挖礦.

1900/1/1 0:00:00
比特幣:消息人士:Jack Dorsey或將卸任推特首席執行官一職,Twitter股價上漲逾11%_比特幣價格實時行情熱議最新

據CNBC11月29日消息,有消息人士稱,推特首席執行官JackDorsey預計將從其高管職位上卸任。消息一出,Twitter股價上漲逾11%.

1900/1/1 0:00:00
比特幣:如何打破區塊鏈的次元壁?_區塊鏈技術通俗講解小區

作者:vcbear 來源:CSDN 先感受一下這段對話: 硬核玩家:“這個相機很強噠,108個對焦點8種對焦模式,傳感器信噪比控制很好,實測動態范圍達到軍事級,配上這個1.2大光圈牛頭.

1900/1/1 0:00:00
PRO:跨鏈治理之提案模型:麻雀雖小,五臟俱全!_PROP

前言 此文為BitXHub跨鏈治理系列第二篇:治理機制的提案模型。在上一篇《跨鏈治理之入門三問:WHOWHATHOW》中,我們介紹了跨鏈治理的總體架構和基本流程,實際上,治理流程基本都是圍繞提案.

1900/1/1 0:00:00
GRAP:德國新政府在聯盟協議中提及加密貨幣,呼吁歐洲對加密領域進行聯合監管_區塊鏈

德國新政府在其聯盟協議中提到了加密貨幣,主張在傳統金融和“創新商業模式”之間建立一個平等的競爭環境.

1900/1/1 0:00:00
ads