以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

從一道CTF題折射出的智能合約安全問題_ETH:ETH挖礦app下載

Author:

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

belluminarbank是俄羅斯戰隊在WCTF上出的一道EVM題目,其中用到了很多ETH中經典的漏洞。雖然難度都不是很大,但是如果對EVM相關特性不了解的話還是有一定難度的,我們就來介紹一下ETH智能合約中的安全問題。

這道題的題目是一個存儲交易類合約,用戶可以通過給合約發送ether實現將ether存儲在合約中的目的。攻擊者的目標就是將存儲在這個合約里的所有ether全部取走。

我們不講這個WCTF的題目,主要是了解智能合約中的安全問題有哪些,危害多大;

就以太坊智能合約的安全漏洞。新加坡國立大學的LoiLuu提出了現在的智能合約存在的幾種安全漏洞。然而,由于智能合約目前還只是初級階段,相信各種安全問題會不斷的發現。

重入漏洞:

也被稱為或與空競爭,遞歸調用漏洞,未知調用等。

OpenSea前產品經理在內幕交易案中被判處3個月監禁和5萬美元罰款:金色財經報道,Inner City Press消息稱,OpenSea前產品經理Nate Chastain在內幕交易案中被判處3個月監禁和5萬美元罰款。據悉,美國紐約南區法院(SDNY)訴Nate Chastain案被稱為第一起“NFT 內幕交易”案件。[2023/8/23 18:16:40]

菲爾戴安說過:這種漏洞在很多時候被很多不同的人忽略:審閱者傾向于一次一個地審查函數,并且假定保護子例程的調用將安全并按預期運行。

重入攻擊介紹:

1.重入攻擊,可能是最著名的以太坊漏洞;第一次被發現時,每個人都感到驚訝。

2.它在數百萬美元的搶劫案中首次亮相,導致了以太坊的分叉。

3.當初始執行完成之前,外部合同調用被允許對調用合同進行新的調用時,就會發生重新進入。

沉寂超8年的比特幣地址被激活并轉移了100枚BTC:金色財經報道,數據顯示,北京時間3月30日13時45分,一個沉寂長達8年的比特幣地址被激活,共有100枚BTC轉移至新地址(bc1qyq6s5hmn9jqqz8pyqzw68lxf9ukf5g6zpvzgwk0lglahyp4g4cfspvzfdg)。[2023/3/30 13:34:58]

4.對于函數來說,這意味著合同狀態可能會在執行過程中因為調用不可信合同或使用具有外部地址的低級函數而發生變化。

在以太坊中,當一個合約調用另一個合約的時候,當前的操作就要等到調用結束之后才會繼續。這時,如果被調用者需要使用調用者當前所處的狀態,那么這就產生了問題。

著名的DAO攻擊事件就是因為這個漏洞而發生的。

示例:

1.個聰明的合同跟蹤些外部地址的平衡,并允許戶通過其公共資檢索withdraw()功能。

EMURGO Ventures宣布投資AID:Tech:金色財經報道,Cardano區塊鏈官方商業部門EMURGO的風險投資部門EMURGO Ventures今天宣布投資AID:Tech,以加速其Web3產品和服務的擴展。這筆資金將部分支持 AID:Tech 開發創新的 Web3“志愿者賺錢”錢包和生態系統,利用基于區塊鏈的去中心化標識符 (DID) 和 NFT 為人們創建數字身份解決方案以建立鏈上聲譽合并 Web2 和 Web3。[2022/8/25 12:48:44]

2.個惡意的智能合同使withdraw()函數檢索其全部余額。

3.在更新惡意合同的余額之前,受害者合同執call.value(amount)()低級別函數將以太發送給惡意合同。

4.該惡意合同有個付fallback()接受資的功能,然后回調到受害者合同的withdraw()功能。

Animoca Brands因未提交財務業績被ASIC罰款5萬美元:7月1日消息,Animoca Brands因未能提交2019/2020和2020/2021財年的財務業績被澳大利亞證券和投資委員會(ASIC)處以5萬美元罰款。Animoca Brands聲明稱,正在與其法律顧問合作解決此事并與審計公司合作盡快完成財務報告,確保股東利益受到保護。(Startup Daily)[2022/7/1 1:44:10]

5.第次執會觸發資轉移:請記住,惡意合同的余額尚未從次提款中更新。結果,惡意合同第次成功退出了全部余額。

以下函數包含易受重攻擊影響的函數。當低級別call()函數向msg.sender地址發送ether時,它變得易受攻擊;如果地址是智能合約,則付款將觸發其備功能以及剩余的交易體:

交易順序依賴合約:

交易順序依賴就是智能合約的執行隨著當前交易處理的順序不同而產生差異。例如,有兩個交易T和T,兩個區塊鏈狀態S和S,并且S狀態處理完交易T后才能轉化為狀態S。那么,如果礦工先處理交易T,交易T調用的就是S狀態下的智能合約;如果礦工先處理交易T再處理交易T,那么由于先執行的是T,合約狀態就轉化為S,最終交易T執行的就是狀態S時的智能合約。

攻擊方法舉例:

攻擊者提交一個有獎競猜合約,讓用戶找出這個問題的解,并允諾給予豐厚的獎勵。攻擊者提交完合約后就持續監聽網絡,如果有人提交了答案的解,此時提交答案的交易還未確認,那么攻擊者就馬上發起一個交易降低獎金的數額使之無限接近0。當礦工處理這兩個交易時,當前交易池就有兩個待確認交易:一個交易是提交答案,一個交易是更改獎金數額。如果礦工先處理的是敵手更改獎金的交易,而敵手可以通過增加交易費用讓礦工先處理自己的交易,那么等到礦工處理提交答案的交易時,答案提交者所獲得的獎勵將變得極低,敵手就能幾乎免費的獲得正確答案。

時間戳依賴合約,也稱時間篡改;

礦工處理一個新的區塊時,如果新的區塊的時間戳大于上一個區塊,并且時間戳之差小于900秒,那么這個新區塊的時間戳就是合法的。這是以太坊協議所規定的。時間戳依賴顧名思義就是指智能合約的執行依賴當前區塊的時間戳,隨著時間戳的不同,合約的執行結果也有差別。

攻擊方法舉例:

1.一場比賽在今天午夜付出了第一名球員。

2.惡意礦工包括他或她試圖贏得賽并將時間戳設置為午夜。

3.在午夜之前,礦工最終挖掘該塊。當前的實時時間“能夠接近”到午夜,絡上的其他節點決定接受該塊。

以下功能只接受特定期之后的呼叫。由于礦可以影響他們區塊的時間戳,他們可以嘗試挖掘個包含他們交易的區塊,并在未來設定個區塊時間戳。如果夠接近,它將在網絡上被接受,交易將在任何其他玩家試圖贏得比賽之前給予礦工以太:

誤操作異常:

在以太坊中,一個合約調用另一個合約可以通過send指令或直接調用另一個合約的函數。然而在調用過程中可能會出現錯誤,調用的合約就會回退到之前的狀態。那么這個異常就可能無法很好地被調用者獲知,這取決于調用方式。例如,通過send指令調用的合約應該通過檢查返回值來驗證合約是否被正確執行。

攻擊方法舉例:

有個名KingOfTheEtherThrone的智能合約:用戶可以通過一定數量的以太幣成為“以太幣國王”,支付的數額由現任國王決定。很顯然,當前國王可以通過買賣國王獲得利潤。當一個用戶聲稱為國王后,合約就發送賠償金給現任國王,并指定這個用戶為新的國王。然而,這個合約并沒有檢查支付賠償金的交易的結果。這樣一旦合約在執行過程中產生了異常,現任國王就有可能同時失去王座和賠償金。

可能的攻擊方式就是敵手故意超出調用棧的大小限制。以太坊虛擬機規定調用棧的深度為1024。敵手在攻擊之前,首先調用自身1023次,然后發送交易給KoET合約,這樣就造成了合約的調用棧超出了限制,從而出現了錯誤。合約出錯后,因為這個合約沒有檢查合約的返回值,那么如果合約在發送賠償金給現任國王的過程中出現了異常,那么現任國王極有可能失去王座和賠償金。

Tags:以太坊ETHWCT以太坊幣是什么幣ETH錢包地址ETH挖礦app下載Etherael指什么寓意WCT幣是什么幣

比特幣交易
TRONbet:波場系菠菜DApp“粉墨登場”_TRX:TRO價格

波場TRX是基于區塊鏈的去中心化內容協議,其目標在于通過區塊鏈與分布式存儲技術,構建一個全球范圍內的自由內容娛樂體系,這個協議可以讓每個用戶自由發布、存儲、擁有數據、并通過去中心化的自由形式.

1900/1/1 0:00:00
一張圖看懂比特幣、以太坊、聯盟鏈等區塊鏈系統架構_區塊鏈:聯盟鏈區塊鏈工程專業學什么

會當凌絕頂,一覽眾山小。進入區塊鏈底層開發前,我們需要了解區塊鏈底層的通用架構是如何設計的,從上而下地審視區塊鏈底層的結構,做到了然于胸,才能胸有成竹。他山之石,可以攻玉.

1900/1/1 0:00:00
分叉應該體面,誰都不要說再見_比特幣:小零幣官網

11月的比特幣現金分叉風波還沒完全平息,12月又要迎來小零幣的硬分叉。小零幣Zcoin官方宣布,隨著0.13.7.1版本的發布,Zcoin開始了切換POW算法至MTP的歷程.

1900/1/1 0:00:00
這些貓咪都特別貴,簡直是行走的人民幣,最后一種價格離譜_布偶貓:布偶貓幣是什么幣

養寵物本身就是一個特別耗費金錢的事情,養一只貓最先要考慮的可不是自己有沒有時間,自己有沒有經驗,最應該考慮的必須是自己有沒有錢,養寵物可不是說養就養的.

1900/1/1 0:00:00
瑞波幣是將是加密貨幣上漲的未來_XRP:IFTXRP價格

2018年加密市場已經逐漸走向成熟,業內人士對加密市場的未來做出預測。來自普華永道的加密負責人HenriArslanian介紹,2019年該行業的前景可期待,尤其是機構投資者,這些投資者總是可以.

1900/1/1 0:00:00
區塊鏈技術的發展演變和潛在應用簡述_比特幣:加密貨幣市場還有未來嗎

區塊鏈技術構思于2008年,目的是以不可更改和可公開驗證的方式記錄比特幣交易。比特幣是加密貨幣的第一個原型,它的發明是為了實現各方之間的資金轉移而不依賴中介機構.

1900/1/1 0:00:00
ads