前言
2020 年 7 月 1 日,VETH 合約遭遇黑客攻擊。慢霧安全團隊在收到情報后對本次攻擊事件進行了全面的分析,下面為大家就這次攻擊事件展開具體的技術分析。
攻擊細節
本次攻擊交易如下 0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224
通過交易概覽可以看到攻擊者在 Uniswap 中使用 0.9 ETH 兌換成 VETH,然后使用 VETH 在 Vether 合約中進行操作,最終盜走巨額的 VETH。
Voyager清算程序預計在5月5日提交:金色財經報道,據Voyager無擔保債權人官方委員會(UCC)官方推特,Voyager和UCC正在完成清算程序,預計會在5月5日提交清算程序。清算程序將詳細說明債權人接收分配的過程。提交清算程序后,各方將有10天的時間提出異議。
如果沒有人提出異議,Voyager打算屆時使該計劃生效。如果提出異議,法院將在計劃生效之前舉行聽證會以考慮異議。Voyager希望在接下來的幾周內開始向債權人分發。[2023/5/5 14:43:40]
現在使用 OKO 合約瀏覽器對具體的攻擊細節進行分析(下圖只展示一部分)https://oko.palkeo.com/0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224/
Aptos Labs聯合創始人:NFT將突破上一代區塊鏈的界限:金色財經報道,Layer 1區塊鏈Aptos Labs聯合創始人Mohammad Shaikh在采訪中表示,NFT有可能不僅僅是收藏品。我的看法是,NFT正在突破我們在上一代區塊鏈中所見的界限,過去你無法真正將NFT帶入不同的協議和平臺,NFT讓持有者能夠證明對數字項目的所有權,它應該有機會在游戲和社交平臺中生存。
Shaikh還表示,突破NFT用例的界限還可以連接世界各地的社區。到2023年,他預計NFT將通過大品牌和作為一種支付方式進入主流。[2023/1/28 11:33:07]
LooksRare更新掛單獎勵規則,提升合規用戶獲得獎勵的價值:10月20日消息,NFT交易所LooksRare平臺對掛單獎勵規則進行更新:1.更新后,每個錢包地址只有5個NFT系列合集的掛單可以獲得獎勵;更新前,每個錢包地址有資格同時獲得獎勵的有15個NFT系列合集。
2.更新后,每個錢包地址的每個合集最多200個符合條件的掛單獲得獎勵,這將由掛單價格按升序確定;更新前,在1.4 倍以內的所有掛單都可以獲得獎勵。
以上規則從2022年10月20日上午9:00 (UTC) 開始的掛單獎勵期開始生效。本次更新(連同上一次更新)旨在為合規用戶增加掛單獎勵的價值,同時更有效地為熱門NFT系列創造有意義的流動性。[2022/10/20 16:32:28]
通過分析交易內具體的細節可以發現:攻擊者先創建了一個合約0x47Ed415006C6F8052Fff05fe983f31D6D24B8fDB 通過此合約對 Vether 合約中的 changeExcluded(unknown37217349) 函數與 transferFrom 函數進行了調用。
LUNA突破4.5美元,24小時漲幅超133%:金色財經報道,行情顯示,LUNA突破4.5美元,現報4.53美元,24小時內漲幅達到133.29%,行情波動較大,請做好風險控制。[2022/9/9 13:19:54]
接下來對這兩個函數的具體代碼進行分析:
可以看到在 transferFrom 函數中,先對 mapAddress_Excluded[msg.sender] 進行了 if 判斷,具體邏輯是mapAddress_Excluded[msg.sender]為 false 時,將會檢查對攻擊者合約的授權額度,然后調用_transfer函數進行轉賬。而這個邏輯顯然走不通,攻擊者合約是沒有任何授權額度的。因此mapAddress_Excluded[msg.sender]只能為 true ,然后直接調用_transfer函數進行轉賬。
“中國旅游日”山西首次發布古建筑數字藏品:金色財經消息,5月19日,“中國旅游日”主會場活動在山西開幕。在文化和旅游部市場管理司指導下,山西省文物局、山西省文化和旅游廳聯合騰訊幻核、騰訊區塊鏈,共同推出“古建有畫說”公益數字文創藏品計劃,面向群眾免費限量發行五款共計5萬份的山西古建筑數字藏品。用戶不僅可以在線上感受山西古建之美,同時基于區塊鏈技術可以在云端將古建數字藏品永久收藏。
本次項目以山西省的國寶級不可移動文物佛光寺、飛虹塔、永樂宮、晉祠以及平遙古城為代表,以藝術再創的形式打造一系列古建文化數字藏品。[2022/5/19 3:27:10]
接下來具體分析該如何將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函數。
首檔行情直播欄目 金晚8點 熱點資訊、現貨合約,一對一實時解答隨時隨地掌握后市行情,把握幣市掘金機會2020/07/15丨今日主題:《美股暴漲.
1900/1/1 0:00:00告別兩次分叉時的激烈爭斗,BCH仿佛進入了一種與世無爭的佛系狀態。不過,根據Coindesk的分析,BCH在開發進展與社交媒體上的討論,還是要超過中文世界似乎更為風光的BSV.
1900/1/1 0:00:00文章系金色財經專欄作者幣圈北冥供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.
1900/1/1 0:00:00關于波卡的上線,你是不是也有這些疑問:波卡上線了,為什么代幣 DOT 還不能交易?怎么理解波卡的 “分階段” 上線?波卡跟其他區塊鏈比有什么獨特之處?目前生態的發展情況怎么樣?波卡上線后 Kus.
1900/1/1 0:00:00你知道區塊鏈中的“不可能三角”嗎?即區塊鏈無法同時達到可擴展性(Scalability)、去中心化(Decentralization)和安全(Security).
1900/1/1 0:00:00灰度投資剛剛發布了其季度報告。報告顯示,灰度的資產管理(AUM)在第二季度達到歷史新高,這廣泛反映了投資者對數字貨幣資產類別的投資興趣。機構投資者仍然是灰度數字資產信托的主要投資者.
1900/1/1 0:00:00