1、前言
北京時間3月5日,知道創宇區塊鏈安全實驗室?監測到?BaconProtocol?遭受黑客攻擊損失約958,166美元,本次攻擊利用重入漏洞,并憑借閃電貸擴大收益額。目前攻擊者地址還沒有被加入USDC的黑名單中。
2、分析
攻擊事件如下圖所示,該次攻擊事件的問題點在于lend()函數,攻擊者利用該函數進行重入攻擊。
2.1基礎信息
攻擊合約:0x580cac65c2620d194371ef29eb887a7d8dcc91bf
攻擊者地址:0x7c42f2a7d9ad01294ecef9be1e38272c84607593
美國在線食品配送平臺Grubhub與比特幣獎勵公司Lolli達成合作:12月3日消息,美國在線食品配送平臺Grubhub與比特幣獎勵公司Lolli達成合作,允許其用戶在每筆訂單中賺取比特幣 (BTC)。在周三的公告中,Lolli表示Grubhub客戶的第一筆訂單將獲得5美元的BTC,后續訂單獎勵為1美元BTC。用戶必須在Grubhub下訂單之前在網絡或移動設備上激活Lolli。(News BTC)[2021/12/3 12:47:58]
攻擊tx:0x7d2296bcb936aa5e2397ddf8ccba59f54a178c3901666b49291d880369dbcf31
漏洞合約:0x781ad73f140815763d9A4D4752DAf9203361D07D
BHEX Wallet正式發布上線:據官方消息,BHEX Wallet于7月8日15:00(UTC+8)正式發布上線,首批支持DOGE、UNI、SUSHI、AAVE、COMP、HT、BNB、TRX、LINK等13種跨鏈資產。BHEX Wallet 是一款去中心化跨鏈錢包,去中心化跨鏈資產安全托管、高效可擴展的共識清算、豐富的API支持,是使用管理BHEX Chain資產的錢包工具。去中心化交易平臺HDEX也已正式推出,基于BHEX Chain OpenDex協議,支持AMM與Orderbook訂單薄快速兌換的交易模式,支持任意資產安全跨鏈充提。[2021/7/8 0:37:07]
2.2流程
1.攻擊者通過UniswapV2閃電貸借出6,360,000USDC。
動態 | BHEX合約交易量及交易人數較前高增幅40%:據BHEX官方數據,截止今日12:00,其永續合約交易人數和交易量紛紛創出2020年新高,較前高增幅40%。據悉BHEX永續合約上線3個月,無宕機、無卡頓。在交易深度,如盤口低價差,高掛單量以及API的穩定性等方面,也贏得業內專業人士和廣大用戶的認可。此外為回饋廣大合約用戶的支持,BHEX即將推出合約體驗金計劃。BHEX將于3月1日20:00啟動永續合約實盤大賽,詳情請點擊閱讀原文。[2020/2/26]
2.用閃電貸借出的6,360,000USDC分成3份,去bHOME中進行2次重入攻擊調用了3次lend()函數鑄造共8,465,943.180104bHOME。
3.將剛才重入獲得的bHOME拿去銷毀贖回獲得7,336,924.998USDC。
公告 | BHEX推出白標云交易所:今日,BHEX交易平臺宣布:針對目前的市場競爭變化,將基于知名SaaS交易所平臺幣核云,推出BHEX白標云交易所產品,全面支持幣幣、OTC、合約等交易業務。通過白標云交易所產品,BHEX可以免費為想要布局交易所賽道的創業者提供頂級交易平臺技術支持,快速實現交易平臺業務冷啟動。
現有使用幣核云交易系統的客戶,都可以依托幣核云平臺,零成本推出白標云交易所業務。
幣核云是新加坡技術公司幣核科技的主要產品,目前為全球數百家交易平臺提供了技術服務。幣核科技由火幣網、OKEX等多家優質頂級機構共同投資,創始人巨建華曾擔任火幣網CTO、上市公司X Financial技術副總裁,在金融交易、數字資產于區塊鏈技術等領域具備豐富經驗。詳情請點擊查看原文。[2020/2/20]
4、歸還閃電貸借出的6,360,000USDC,并支付19,716的手續費,最后將剩余的957,208.998USDC轉入自己的賬戶。
2.3細節
該次攻擊事件重點在于lend()函數,由于合約https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未驗證開源,所以我們只能從交易的Debugger中尋找線索。
1、攻擊者通過UniswapV2閃電貸借出6,360,000USDC。
2、用閃電貸借出的6,360,000USDC分成3份,去bHOME中進行重入攻擊2次調用?lend()函數鑄造共8,465,943.180104bHOME。
3、將剛才重入獲得的bHOME拿去銷毀贖回獲得7,336,924.998USDC。
4、歸還閃電貸借出的6,360,000USDC,并支付19,716的手續費,最后將剩余的957,208.998USDC轉入自己的賬戶。
2.3細節
該次攻擊事件重點在于?lend()?函數,由于合約?https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code?并未驗證開源,所以我們只能從交易的Debugger中尋找線索。
分析Debugger可以看到下圖是第一次調用函數,接著進行了2次重入。
從重入攻擊中可以找到INPUT中調用函數的字節碼為?0xa6aa57ce。
通過字節簽名可以知道重入攻擊調用的是?lend()?函數。
從Debugger中我們可以發現攻擊合約的地址?0x781ad73f140815763d9a4d4752daf9203361d07d。
通過反編譯合約?0x781ad73f140815763d9a4d4752daf9203361d07d?得到合約偽代碼內容,可以找到?lend()?函數。
我們在反編譯的代碼中可以看到該合約使用的ERC777協議,會查詢?recipient?的回調合約并回調?tokensReceived()?函數用以重入攻擊。
通過分析可以發現?_index?就是傳入的USDC數量。
totalSupply?和?balanceOf?的增量都和?_index?是正比關系,和?stor104?是反比關系,并且這兩個變量的更新發生在重入攻擊之前,每次都會更新。
stor104?記錄的是用戶存入的USDC總量,該變量的更新發生在重入之后,那么在重入的過程中?stor104?的值是不變的,而上面的?totalSupply?是在變大,所以最后return的值也會相應的增大,從而使得攻擊者通過重入攻擊鑄造得到比正常邏輯更多的bHOME代幣。
除了該次攻擊事件,BlockSecTeam還阻斷了后面發生的攻擊并將金額返還給了項目方。
交易hash:0xf3bd801f5a75ec8177af654374f2901b5ad928abcc0a99432fb5a20981e7bbd1
3、總結
此次攻擊事件是由于項目方使用了ERC777協議但沒有對回調合約的安全性進行考慮從而導致了重入攻擊的發生,當項目合約有涉及資產的轉移時,建議使用「檢查-生效-交互」模式來保證邏輯代碼的安全,當然我們也可以使用OpenZeppelin官方提供的ReentrancyGuard修飾器來防止重入攻擊的發生。
Gate.io將於2022年3月12日22:00~22:15(UTC8)進行現貨交易引擎升級,時間約爲15分鐘.
1900/1/1 0:00:00親愛的用戶:幣安將支持RariGovernanceToken與Tribe代幣合並計劃。參照代幣合並細節,幣安將為用戶將RGT置換為TRIBE,具體安排如下:幣安槓桿交易平臺將於2022年03月0.
1900/1/1 0:00:00親愛的BitMart用戶:KwikTrust(KTX)將延期交易及提現功能,各項功能的開放時間請參照:充值功能:已開啟交易功能:2022年03月15日17:00(香港時間)提現功能:2022年0.
1900/1/1 0:00:00尊敬的用戶:?????????BKEX即將上線BCT,詳情如下:上線交易對:BCT/USDT??幣種類型:POLYGON充值功能開放時間:已開放交易功能開放時間:2022年3月10日15:00提.
1900/1/1 0:00:00尊敬的用戶:Hotcoin將於(GMT8)2022年3月10日18:00開放IOTX/USDT交易業務,2022年3月11日18:00開放IOTX提幣業務,充值業務開放時間將以公告另行通知.
1900/1/1 0:00:001ZebecProtocol(ZBC)TokenSaleResultTheGate.ioStartupZebecProtocol(ZBC)saleresultisasfollows:ZBCSta.
1900/1/1 0:00:00