比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

又被攻擊 VETH智能合約是如何被盜90萬美元的?_EXC

Author:

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

前言

2020 年 7 月 1 日,VETH 合約遭遇黑客攻擊。慢霧安全團隊在收到情報后對本次攻擊事件進行了全面的分析,下面為大家就這次攻擊事件展開具體的技術分析。

攻擊細節

本次攻擊交易如下 0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224

通過交易概覽可以看到攻擊者在 Uniswap 中使用 0.9 ETH 兌換成 VETH,然后使用 VETH 在 Vether 合約中進行操作,最終盜走巨額的 VETH。

Chainalysis:2022年24%的新代幣具有拉高出貨特性:2月17日消息,Chainalysis通過分析2022年在以太坊和BNBChain上推出的所有代后發現,去年推出的110萬種新代幣中,若只計算在發布后的一周內實現至少10次兌換和連續4天交易的代幣的話,新代幣數量有40,521種。40,521種代幣中,其中有9,902種(24%)在第一周出現價格跌逾90%的情況,表明可能存在拉高出貨活動。Chainalysis估計投資者花費了價值46億美元的加密貨幣購買這9,902種不同的疑似欺詐代幣。其中,445個個人或團體占9,902個可疑拉高拋售特性代幣的24%。[2023/2/17 12:12:58]

現在使用 OKO 合約瀏覽器對具體的攻擊細節進行分析(下圖只展示一部分)https://oko.palkeo.com/0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224/

Circle歐盟戰略與政策總監:2022年穩定幣結算量超過7萬億美元:金色財經報道,Circle歐盟戰略與政策總監帕特里克·漢森在社交媒體發文稱,即便在2022熊市期間,穩定幣結算規模超過了7萬億美元,而萬事達卡則為2.2萬億美元,83%的商家優先考慮穩定幣支付。此外,相比于暴跌的DeFi鎖倉量,穩定幣絕對市值近下跌了5.7%。從2022年7月16日開始,USDC 投機性甚至低于美元 (M2),只有大約15%的USDC交易是錢包到錢包的轉賬,與傳統支付系統中觀察到的2% 非金融化轉賬相比,這一比例相對較高,下半年去中心化交易所約45%的流動性由穩定幣提供。[2023/2/6 11:48:59]

持有超100枚ETH的地址數量創21個月新高:金色財經報道,據Glassnodes數據顯示,持有超過100枚ETH的地址數量剛剛達48,279個,創21個月新高。[2022/12/23 22:03:34]

通過分析交易內具體的細節可以發現:攻擊者先創建了一個合約0x47Ed415006C6F8052Fff05fe983f31D6D24B8fDB 通過此合約對 Vether 合約中的 changeExcluded(unknown37217349) 函數與 transferFrom 函數進行了調用。

接下來對這兩個函數的具體代碼進行分析:

Circle過去一周共發行23億美元USDC,流通量減少5億美元:8月28日消息,USDC發行商Circle披露數據8月19日至26日發行數據,過去一周共發行23億美元USDC,贖回28億美元USDC,USDC流通量減少5億美元。截至8月26日,USDC總流通量為523億美元,儲備量為524億美元,其中現金104億美元,短期美國國債420億美元。[2022/8/28 12:53:21]

可以看到在 transferFrom 函數中,先對 mapAddress_Excluded[msg.sender] 進行了 if 判斷,具體邏輯是mapAddress_Excluded[msg.sender]為 false 時,將會檢查對攻擊者合約的授權額度,然后調用_transfer函數進行轉賬。而這個邏輯顯然走不通,攻擊者合約是沒有任何授權額度的。因此mapAddress_Excluded[msg.sender]只能為 true ,然后直接調用_transfer函數進行轉賬。

數據:持有超過1枚ETH地址數量達歷史最高值:7月25日消息,據Glassnode數據顯示,持有超過1枚ETH的地址數量達歷史最高值,數值為1,563,326。[2022/7/25 2:35:43]

接下來具體分析該如何將mapAddress_Excluded[msg.sender]設置為 true:

通過查看合約可以發現:

合約在初始化時只將address(this)和burnAddress的mapAddress_Excluded置為 true,那么可以肯定還有其他邏輯可以設置mapAddress_Excluded,通過分析  Vether 合約可以發現changeExcluded函數可以實現對mapAddress_Excluded的設置。

通過分析changeExcluded函數可以發現其可見性為external,因此攻擊者合約可以直接調用changeExcluded函數,此時攻擊者合約的mapAddress_Excluded為 false,所以會進入 if 的邏輯中。

接下來對 if 邏輯內的代碼進行具體分析:

在進行 if 邏輯后需要先支付手續費,具體為上方代碼塊中的第 3 行,那這個手續費是從哪里來呢?答案就是攻擊者最初轉入合約中的 0.9 ETH。

圖中可以看到,通過 0.9 ETH 兌換成約 138 VETH。

通過計算代碼中的mapEra_Emission/16我們可以得到攻擊者需要支付的手續費:我們讀取合約中的 mapEra_Emission可以知道 mapEra_Emission為 2048。

此時計算mapEra_Emission/16可得手續費為 2048/16 = 128 VETH,而攻擊者兌換了約138 VETH 是足夠用來支付手續費的,因此便可以通過上方代碼塊中的第 4 行將攻擊者合約的mapAddress_Excluded置為 true。

創建攻擊合約,通過 Uniswap 將 0.9 ETH 兌換成約138 VETH(此處換幣為了后續支付手續費)

調用 Vether 合約中的changeExcluded函數并利用先前在 Uniswap 兌換的約 138 VETH 支付 128 VETH 的手續費,然后將mapAddress_Excluded置為 true

調用 transferFrom 函數,利用mapAddress_Excluded為 true,直接進行轉賬操作

拿錢走人

0xfa2700e67065bc364136b5e7f57112083cb2a0cd

0x75572098dc462f976127f59f8c97dfa291f81d8b

修復建議

此次攻擊主要利用 Vether 合約中changeExcluded函數的可見性為external且未有權限限制,用戶可以直接進行外部調用為攻擊創造了必要的條件。因此應做好對changeExcluded函數的權限或可見性的限制,從而避免任意用戶可以直接外部調用changeExcluded函數。

Tags:ETHLUDEXCDEDETHICALudosMinexCoinDEDE

比特幣價格實時行情
金色前哨丨SEC修訂投資公司法 區塊鏈和加密公司可獲快速審核_區塊鏈

金色財經 區塊鏈7月7日訊  美國證券交易委員會(SEC)已經宣布將簡化投資公司的申請流程,這可能會讓加密貨幣和區塊鏈公司能夠以“更高效、更節約成本的方式”開展業務運營.

1900/1/1 0:00:00
·直播 — 幣圈 “后浪” 仙女直播第8期_區塊鏈

金色財經 · 直播主辦的《 幣圈 “后浪” 仙女直播周》第7期“仙女”完美收官!回顧<第1期> <第2期> <第3期><第4期><.

1900/1/1 0:00:00
金晚8點丨BTC數日窄幅震蕩 僵局何時打破?_NERA

首檔行情直播欄目 金晚8點 熱點資訊、現貨合約,一對一實時解答隨時隨地掌握后市行情,把握幣市掘金機會2020/07/16丨今日主題:《BTC數日窄幅震蕩.

1900/1/1 0:00:00
金色趨勢丨這一指標預示BTC即將暴漲?_300

Hash Ribbons指標是通過量化哈希率相對增長率來展現比特幣哈希率的變化趨勢和比特幣挖礦生態系統的健康狀況。具體數值是用比特幣哈希率的近一個月均值減去近兩個月均值的差值除以一個月均值數據.

1900/1/1 0:00:00
金晚8點丨除了比特幣 哪個主流幣最值得定投?_ETH

首檔行情直播欄目 金晚8點 熱點資訊、現貨合約,一對一實時解答隨時隨地掌握后市行情,把握幣市掘金機會2020/06/29丨今日主題:《除了比特幣 哪個主流幣最值得定投?》  .

1900/1/1 0:00:00
朱嘉明:如何理解區塊鏈對深入改革的意義?_BSP

4月10日下午,陽煤集團與數字資產研究院合作,舉辦線上區塊鏈培訓活動。數字資產研究院學術與技術委員會主席朱嘉明以“區塊鏈技術的功能和制度意義”為題進行授課。本文系作者根據講課記錄修訂.

1900/1/1 0:00:00
ads