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

藏在EOA地址里的魔法:Qubit Finance 被黑分析_POSI:ETH

Author:

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

2022 年 1 月 28 日,一大早醒來就看見 ps 那邊預警了 Qubit Finance 被黑了。有點慘,這是印象中 pancake bunny 項目不知道第幾次被黑了(這里默哀。。)。然后順著 Qubit Finance 官方的推特,不難找到這次的攻擊者地址為

https://bscscan.com/address/0xd01ae1a708614948b2b5e0b7ab5be6afa01325c7

既然知道了地址,那么老樣子,話不多說,直接開始分析吧 :D

由于通過 Qubit Finance 我已經拿到了攻擊者的具體地址,所以我就直接對 BSC 上的攻擊者地址進行查詢,看看是做了什么操作。

通過追查攻擊者在 BSC 鏈上的操作,發現攻擊者根本沒有什么準備資金啊,部署攻擊合約之類的操作,直接上來就是?borrow, 這種操作很陌生,只有兩種可能,要不就是這個?borrow?有問題,直接就是通過?borrow就借空所有資產,還有一種可能就是,這里不是第一案發現場。為了驗證這種想法,就需要先看看對應的?borrow?函數是什么鬼。

AI社交資訊流媒體Techub.NEWS產品正式上線:據官方消息,AI社交資訊流媒體平臺Techub.NEWS今日在香港數碼港舉辦首屆新聞發布會,標志著產品的正式上線。據悉,Techub.NEWS先前已獲得一些知名投資人的關注,種子輪融資由VCB、Ausvic Capital和MetaTdex Ventures(馬蹄創投)參與。Techub.NEWS負責人Alma Li指出,Techub.NEWS通過RLHF算法來優化AI熱點推薦,并采用IPFS存儲技術實現數據的去中心化和高度可靠性,精品內容的NFT化出售則為用戶提供更多收益機會。[2023/4/17 14:07:11]

簡單一看這個?borrow?函數,明顯是屬于?Compound?的架構,是有抵押品才能進行對應的抵押的,同時#238的?borrowAllowed?函數我也檢查過確實是有正確實現對代幣價值的檢查的。那就說明第一種假設不成立,也就是說,這里確實不是第一案發現場。那么如果借貸的邏輯是正確的,那么攻擊者理論上來說,會收到由于第一案發現場弄過來的錢來進行借貸。那么攻擊者的錢又是怎么來的呢?帶著這個疑問,不妨看下攻擊者地址的代幣轉移情況。

孫宇晨相關地址從Biance轉出近3億枚BUSD轉入Paxos:金色財經報道,Whale Alert數據顯示,過去10分鐘有近3億枚BUSD從幣安交易所轉出,轉出交易總計3筆,每筆99,999,997枚BUSD,均轉入0x9f84開頭的未知錢包地址。隨后該地址又將總計299,999,991 BUSD轉入到0x3fda開頭的未知錢包地址。

據Lookonchain監測,孫宇晨剛剛從Binance提取了3億美元的 BUSD并轉移到Paxos Treasury。[2023/2/15 12:08:31]

通過追查攻擊者的代幣轉移情況,發現攻擊者在對 Qubit Finance 進行借貸之前,就已經在其他地方神秘的收到了好幾筆大額的?qXETH?代幣,那么這也驗證了我們的想法,說明借貸操作已經是攻擊后行為了,并不是第一案發現場,為了弄明白這些神秘的資金是怎么來的,我們需要選取其中的一筆交易進行分析(https://bscscan.com/tx/0x8c5877d1b618f29f6a3622cb610ace08ca96e04d8218f587072a3f91e8545bdc)

通過分析這筆交易,發現這筆交易其實是調用了?Qubit Finance?的?Qbridge?合約的?voteProposal?函數。

報告:2022年區塊鏈獨角獸達103家,創歷史新高:12月7日消息,根據區塊鏈投資平臺Blockchain Coinvestors發布的行業報告《遇見區塊鏈獨角獸》,截至2022年底,區塊鏈獨角獸(即市值10億美元以上公司)數量達到103家,創下歷史新高。

其中排名前五的分別是Binance(450億美元)、Blockchain.com(140億美元)、Ripple(113億美元)、OpenSea(106億美元)和Alchemy(102億美元)。

此外,四家曾經的獨角獸因市值下滑而跌出排名,分別是Deribit、BlockFi、FTX和Genesis Digital Assets。在地域方面,北美區塊鏈獨角獸數量最多,總計58家,其次是亞洲19家和歐洲14家。[2022/12/7 21:26:43]

但是問題是這個?voteProposal?其實是只有合約指定的?relayer?才能進行調用的,難道是?Relayer?的私鑰泄漏了嗎?正常來說如果不了解?Qubit Bridge?的架構的話,得出這個結論是顯而易見的。

Kyber Network:攻擊者在9月6日前返還資金可獲得15%漏洞賞金,否則將采取下一步行動:金色財經消息,鏈上流動性協議Kyber Network發推稱,這是最后一次對攻擊者的公開聲明,團隊一直在收集所有可以追溯到攻擊者的數據和日志,并正在與合作伙伴、安全專家和執法部門合作,采取下一步行動。攻擊者若在GMT+7時間9月6日17:00(北京時間9月7日17:00)前通過中心化交易所返還資金可獲得15%漏洞賞金。

此前消息,KyberSwap于9月2日程其前端遭到攻擊,兩個地址共損失26.5萬美元,幣安安全團隊于9月3日表示已確定了兩名攻擊KyberSwap的嫌疑人。[2022/9/5 13:09:47]

但是似乎事實并不是這么簡單。有一種神秘的感覺告訴我事情并不是這樣的。正常來說,對于這種?relayer?架構的跨鏈,如果是通過?relayer?進行的操作的話,那么一定會有一步在其他鏈進行的跨鏈操作,聲明了一個?event,然后才有?relayer?同步到這個?event?然后開始對應代幣的跨鏈,就像?anySwap?一樣,那么基于這種假設,同時攻擊者跨鏈的又是?ETH, 那么攻擊者是大概率在ETH?鏈上進行了一次跨鏈操作的。為了驗證這個想法,我去查了一下?ETH?鏈上的攻擊者的行為,果不其然。。。

歐洲央行行長拉加德:加密貨幣“一文不值”,應該受到監管:5月21日消息,歐洲央行行長拉加德表示,加密貨幣“一文不值”,應該受到監管。(金十)[2022/5/21 3:32:24]

可以看到攻擊者確實進行了很多筆跨鏈操作,調用了?QBridge?在以太坊上的合約進行代幣的跨鏈,看來這里就是第一案發現場了?,選取其中的一筆交易進行分析,發現更加異常的地方。

理論上攻擊者應該跨鏈ETH到BSC鏈上,但是這筆交易里既沒有ETH的轉賬,也沒有WETH的轉移,是怎么回事呢?這需要我們追蹤對應合約的?deposit?函數來進行分析

通過查看這個代碼,我們不難發現,如果要跨鏈接?ETH,根據代碼的函數命名來看,應該是要調用?depositETH?函數的,但是攻擊者卻調用了?deposit?函數來進行?ETH?的跨鏈?為什么可以這樣?回顧上文說的架構,我們知道,Relayer?架構是依賴?event?消息進行進行跨鏈的,而這?depositETH?和?deposit?這兩個函數,是聲明同一個?event?的,那么就是說,如果有機會能讓?deposit?函數聲明的?event?的參數就是?ETH?代幣跨鏈的參數的話,depositETH?和?deposit?這兩個函數實現的效果其實是一樣的,那么問題到這里就簡化了,由于這兩個函數的傳參都是一樣的,只要按調用?depositETH?的參數來調用?deposit?不就好啦?

思路是對的,但是這里還有一個問題,別忽略了 #208 行的?handler?檢查,這個檢查是?deposit函數和?depositETH?函數都有的,按上面的這個思路,能通過檢查嗎?為了驗證這個想法,我們要去看對應?handler?合約的的代碼

通過分析?handler?合約的代碼,發現?handler?同樣存在??deposit?函數和?depositETH?函數,同時,deposit?函數是在 #128行有白名單檢查的,配合圖中標注的 #135 行的?safeTransferFrom?調用也就是說,攻擊者理論上是要轉移代幣的,而攻擊者的的攻擊交易中,沒有出現代幣的轉移,理論上這里應該要報錯才對?為什么成功了呢?回看代碼,tokenAddress?的獲取是通過?resourceIDToTokenContractAddress?進行獲取的,那么這個地址是啥呢?通過查詢合約,我們得到了?ETH?代幣對應的?resourceID?的代幣合約地址是?0x0000000000000000000000000000000000000000

哎,這里就有同學想來問啦,0地址不就是沒有設置過的意思嗎?為什么一個沒有設置過的地址能通過檢查呢?于是我們就不死心的去查這個地址是不是真的是在白名單里,結果一查,哎?結果還真是,芭比Q了?

為什么會有這個操作呢?回顧剛才的代碼,由于?QBirdgeHandler?的?depositETH?函數同樣是包含白名單檢查的,但是充值?native ETH?它沒有代幣合約哇,怎么做白名單檢查呢?QBridge?采用了一個大多數項目都會采用的辦法,那就是如果你充值的是?native ETH?代幣,那么我在合約里就當你是充值 0 地址的代幣,也就是說,你充值 0 地址的代幣,就認為你充的是?ETH?啦。

那第二個問題來啦,0 地址的調用是怎么成功的?哎?這就是一個有趣的問題啦,我們知道,0地址其實是一個?EOA?地址,那么?EOA?地址中是沒有合約代碼的,那么在?evm?的實現中,對?EOA?地址的調用是不會報錯的,同時也不會執行任何操作。一個老?trick:D, 這個?trick在19年的 0x protocol 上出現過

也就是說, 0 地址直接就成功調用?safeTransferFrom?函數而沒有報錯啦,但是,handler?的檢查和調用結束后,對應的在?QBridge合約聲明出來的?event,卻是和轉入了?ETH?是一模一樣的哦。但是?relayer?哪知道這么多,它只是一個執行?event?捕獲的云服務器而已 :D

這次?Qubit Fiance?的被黑其實同時存在了好幾個問題

最大的問題,自然是?EOA?調用的問題,其實是不會報錯的,這個問題沒有被意識到

但是除了這個問題之外,還需要結合?depositETH?和?deposit?函數本身聲明的是同一個類型的事件,不然也是不會出問題的

經過查詢,deposit?函數以前是用來充值?WETH?的,而且用的?resourceID?和這次攻擊用的?ID?是一樣的,那么以前的調用是正常的,那么為什么現在就不正常呢?肯定是有人改過嘛 :D

然后果不其然,我還真的找到了?

而這個函數,只有?owner?才能調用,為什么要這樣搞呢?細節請大家發揮聯想,我的分析之旅到這里就結束了 ;)

Tags:ETHPOSPOSIDEPOCoinbase Wrapped Staked ETHMNPoSTreeposi幣是哪國的項

歐易交易所app下載
伊朗加密法規草案的背后發生了什么?_COI:CHA

伊朗的加密法規在拖延數月的壓力下,伊朗央行(Central Bank of Iran)終于在1月底發布了一份加密貨幣合法性框架草案,并歡迎各方反饋意見.

1900/1/1 0:00:00
遭受價格操控攻擊損失約73萬美元:bDollar被攻擊事件分析_GRIN:RIN

2022年5月21日,成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示, bDollar項目遭受價格操控攻擊,攻擊者獲利2381WBNB(價值約73萬美元).

1900/1/1 0:00:00
12小時鎖倉3.8億美元?Pantera合伙人解讀「社區版Curve」Swerve_CUR:USD

3.8 億美元,這是一個名為 Swerve 的新項目在不到 12 小時的時間里獲得的資金!Swerve Finance 是 Curve Finance 的一個分叉,后者是一個去中心化交易平臺.

1900/1/1 0:00:00
穩定幣挖礦錦囊:如何獲得高收益 哪些項目值得埋伏?_DRAC:穩定幣

在綜合判斷安全性和收益率的情況下,推薦一些不同公鏈上的流動性挖礦機會。加密市場跟隨外部變化的趨勢越來越明顯,在外部環境不穩定的情況下,市場表現不佳,穩定幣理財成為更多人的需求.

1900/1/1 0:00:00
北京全面力推“攜手筑網 同防共治” 打擊“區塊鏈”、“虛擬貨幣”等名義的非法集資_NBS:nbs幣未來價格

新京報訊(記者 黃鑫宇)為進一步加大防范非法集資宣傳教育工作力度,從源頭上有效遏制非法集資活動.

1900/1/1 0:00:00
一次由存儲狀態引發的慘案 Cover協議被黑簡要分析_DSP:pwar幣價格

By :  Kong@慢霧安全團隊據慢霧區情報,2020 年 12 月 29 日,Cover 協議價格暴跌。慢霧安全團隊第一時間跟進相關事件并進行分析,以下為分析簡略過程.

1900/1/1 0:00:00
ads