前言
2020 年 7 月 1 日,VETH 合約遭遇黑客攻擊。慢霧安全團隊在收到情報后對本次攻擊事件進行了全面的分析,下面為大家就這次攻擊事件展開具體的技術分析。
攻擊細節
本次攻擊交易如下 0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224
通過交易概覽可以看到攻擊者在 Uniswap 中使用 0.9 ETH 兌換成 VETH,然后使用 VETH 在 Vether 合約中進行操作,最終盜走巨額的 VETH。
Coinbase首席法務官:美國人想要一只現貨比特幣ETF:金色財經報道,Coinbase首席法務官Paul Grewal表示,美國人想要安全、受監管的加密產品,其中包括現貨比特幣ETF。?當美國政府,特別是美國證券交易委員會阻撓這種準入時,他們確實是在阻撓美國人民所說的他們想要的東西。[2023/6/30 22:09:31]
現在使用 OKO 合約瀏覽器對具體的攻擊細節進行分析(下圖只展示一部分)https://oko.palkeo.com/0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224/
比特幣挖礦項目Volcano Energy以2.5億美元初始投資在薩爾瓦多啟動:6月7日消息,可再生能源比特幣挖礦項目Volcano Energy宣布已經收到2.5億美元初始投資,這筆資金將用于啟動其在薩爾瓦多241兆瓦 (MW) 的發電園區,該園區將為比特幣礦場提供電力,該項目的總承諾投資額達10億美元,USDT發行商Tether為首輪投資者之一。
金色財經此前報道,Volcano Energy宣布投入10億美元在薩爾瓦多Metapán地區建造一座241兆瓦(MW)的比特幣礦場,初始投資為2.5億美元。[2023/6/7 21:21:44]
通過分析交易內具體的細節可以發現:攻擊者先創建了一個合約0x47Ed415006C6F8052Fff05fe983f31D6D24B8fDB 通過此合約對 Vether 合約中的 changeExcluded(unknown37217349) 函數與 transferFrom 函數進行了調用。
Layer1區塊鏈LUKSO主網正式上線:5月24日消息,以太坊 ERC-20 標準提出者之一 Fabian Vogelstelle 等人推出的 Layer 1 區塊鏈 LUKSO 宣布主網已正式上線。LUKSO 是基于 Casper PoS 的 EVM 區塊鏈,于 2021 年 2 月通過可逆 ICO 籌集到 1800 萬美元資金。LUKSO 使用 Casper FFG 權益證明,LYXe 驗證者來提議、驗證和擔保區塊的有效性。主網上線后,LYXe 將轉換為 LYX(LUKSO 的原生代幣)。[2023/5/24 15:22:10]
接下來對這兩個函數的具體代碼進行分析:
美股開盤,三大股指上漲:金色財經報道,美股開盤,道瓊斯指數2月23日(周四)開盤上漲131.31點,漲幅0.40%,報33176.40點;標普500指數2月23日(周四)開盤上漲28.68點,漲幅0.72%,報4019.73點;納斯達克綜合指數2月23日(周四)開盤上漲126.53點,漲幅1.10%,報11633.60點。[2023/2/23 12:25:44]
可以看到在 transferFrom 函數中,先對 mapAddress_Excluded[msg.sender] 進行了 if 判斷,具體邏輯是mapAddress_Excluded[msg.sender]為 false 時,將會檢查對攻擊者合約的授權額度,然后調用_transfer函數進行轉賬。而這個邏輯顯然走不通,攻擊者合約是沒有任何授權額度的。因此mapAddress_Excluded[msg.sender]只能為 true ,然后直接調用_transfer函數進行轉賬。
ENS DAO:eth.link已無法訪問,用戶需注意網絡釣魚風險:8月26日消息,ENS DAO在社交平臺表示,目前eth.link已經無法訪問。由于該域名歸前以太坊開發者VirgilGriffith(其已被判入獄63個月)所有,盡管得到了他律師的幫助,但ENS DAO仍無法訪問Virgil Griffith的注冊賬戶并更新域名。
ENS DAO提醒用戶,如果有任何使用eth.link的服務,需要立即將用戶引導至其他地方并推薦使用社區提供的解決方案eth.limo,同時還提醒用戶謹防網絡釣魚風險。[2022/8/26 12:49:46]
接下來具體分析該如何將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:ETHCLULUDDEDethereal最美翻譯Baby Billionaires ClubLUD價格KIRBYRELOADED價格
金色財經訊,繼6月29日Balancer流動池遭到閃電貸攻擊后,加密貨幣行業又出現一起黑客攻擊事件.
1900/1/1 0:00:00根據RBC的報道,俄羅斯國家杜馬金融市場委員會主席阿納托利?阿克薩科夫(Anatoly Aksakov)表示,俄羅斯第一部加密法案“將于2021年1月1日通過”.
1900/1/1 0:00:00行情變化不大,比特幣繼續在9150美金附近震蕩,波動率小的可憐。日線MA83線被跌破的第三天,同時MFI繼續下行,多頭在這時候如果還在猶豫只會陷入更危險的境地;小時OBV沒有太大變化,暫時也沒有.
1900/1/1 0:00:00繼上次UMA的IUO被人利用賺取數十萬美元的豐厚利潤之后,bZx的代幣IUO(在Uniswap上首次發行),再次上演類似事件。上次的UMA事件可以參考藍狐筆記的《UMA的IUO:誰是贏家?》.
1900/1/1 0:00:00全球金融市場正在經歷近一個世紀以來的最大變革,在這場洗牌中,一位著名的金融作家正在提倡擁抱比特幣,而不是黃金和房地產等其他硬資產.
1900/1/1 0:00:00本周的技術周刊,包含以太坊、波卡、Filecoin、Hyperledger等網絡的技術類新聞消息.
1900/1/1 0:00:00