故技重施:Hundred Finance 被黑分析

2022-03-17 00:03:36

2022 年 03 月 16 日,據慢霧區消息,Hundred Finance 存在嚴重漏洞遭到攻擊,黑客獲利約 2,363 ETH,慢霧安全團隊第一時間介入分析,並將結果分享如下:

相關信息

Hundred Finance 是一個去中心化應用程序(DApp),它支持加密貨幣的借貸。它是一種多鏈協議,與 Chainlink 預言機集成,以確保市場健康和穩定,同時專門為長尾資產提供市場。

以下是本次攻擊涉及的相關地址:

攻擊者地址:

https://blockscout.com/xdai/mainnet/address/0xD041Ad9aaE5Cf96b21c3ffcB303a0Cb80779E358

攻擊交易:https://blockscout.com/xdai/mainnet/tx/0x534b84f657883ddc1b66a314e8b392feb35024afdec61dfe8e7c510cfac1a098

攻擊者合約:

https://blockscout.com/xdai/mainnet/address/0xdbf225e3d626ec31f502d435b0f72d82b08e1bdd

https://blockscout.com/xdai/mainnet/address/0xbE8fe2aE087aeCcB1E46EF206368421c9212637B

https://blockscout.com/xdai/mainnet/address/0x09b4f2551e9f39fa021a99463e21d6044656a7b9

https://blockscout.com/xdai/mainnet/address/0xf07ac43678b408ff0c86efff99b8d21af3d38c51

https://blockscout.com/xdai/mainnet/address/0x9c4e6edbc45b16e4378b53cd3e261727e103f633

被攻擊合約:

https://blockscout.com/xdai/mainnet/address/0x243E33aa7f6787154a8E59d3C27a66db3F8818ee husdc

https://blockscout.com/xdai/mainnet/address/0xe4e43864ea18d5e5211352a4b810383460ab7fcc hwbtc

https://blockscout.com/xdai/mainnet/address/0x8e15a22853a0a60a0fbb0d875055a8e66cff0235 heth

https://blockscout.com/xdai/mainnet/address/0x090a00a2de0ea83def700b5e216f87a5d4f394fe hxdai

攻擊核心點

在 Hundred Finance 借貸協議的 borrowFresh 函數中,記账是在代幣轉账之後,但市場中 USDC、wBTC、wETH 使用的是 ERC677 類型 token 合約,它是 ERC20 合約的一個擴展,兼容 ERC20 協議標准。ERC677 在 token 進行轉账之後,會回調到目標合約的 onTokenTransfer 方法,這就使攻擊者構造的惡意合約能進行重入攻擊。

具體細節分析

1. 通過 SushiSwap 閃電貸借出 2,096,607.298 USDC、1,723,293.26 wXDAI、1,650,170.47 wXDAI。


      故技重施:Hundred Finance 被黑分析

2. 攻擊者通過攻擊合約向 USDC 借貸合約抵押 1,200,000 枚 USDC,換取 59,999,789.075 枚 hUSDC。


      故技重施:Hundred Finance 被黑分析

隨後通過借貸合約借走 1,200,000 枚 USDC,但是由於借貸合約記账是在轉账之後,因此攻擊者能在轉账的時候同時开始他的攻擊。


      故技重施:Hundred Finance 被黑分析

因為 XDai 鏈上的 USDC、WBTC、WETH 是有轉账後回調步驟,攻擊者在轉完 USDC 之後再次重入到 WBTC 的借貸合約。同時因為上一步借走 USDC 的數據還未記錄,所以攻擊者又順利的借走 16.17030715 枚 WBTC, 此後再次重入到 WETH 的借貸合約,借走 24.715930916595319168 枚 WETH。


      故技重施:Hundred Finance 被黑分析

3. 接着,攻擊者繼續往 USDC 借貸合約轉入 1,964,607 枚 USDC,拿到 98,230,019.558 枚 hUSDC,然後從池子裏面借出 1,748,500.495 枚 USDC,再重入到 xDai 的借貸合約;

隨後,攻擊者轉入大量的 xDai 換出 234,304,737.048 枚 hxDAI,再借出大量的 xDai,再從 USDC 借貸合約借出 4,128,044.631 枚 USDC 之後,攻擊者再一次往 USDC 借貸合約轉入 1,358,759.278 枚 USDC,又獲得 67,937,725.081枚 hUSDC,接着,繼續從 USDC 的借貸合約借出 1,209,295.758 枚 USDC。


      故技重施:Hundred Finance 被黑分析

4. 最後攻擊者歸還從 SushiSwap 借出來的 xDai 和 USDC,剩余的非法獲利轉到攻擊者账戶上。


      故技重施:Hundred Finance 被黑分析

MistTrack

據慢霧 AML 分析,黑客地址將資金從 XDai 跨鏈到以太坊後,將代幣均兌換為 ETH,且在以太坊上的黑客地址初始資金來源於 Tornado.Cash。


      故技重施:Hundred Finance 被黑分析

最後將獲利的 2,363 ETH 分成 32 次轉入 Tornado.Cash,以躲避追蹤。


      故技重施:Hundred Finance 被黑分析

總結

本次攻擊事件是由於在借貸合約中的 borrowFresh 函數沒有在代幣轉账前進行記账並且使用的 token 是有回調機制造成的,進而導致攻擊者可以在轉账之後重入到其他借貸合約。慢霧安全團隊建議使用非 ERC20 標准的 token 合約時,要注意兼容性,合約記账應在代幣轉账之前做好記錄,遵循 Checks-Effects-Interactions 規則,避免再次出現此類安全問題。

By:Victory@慢霧安全團隊

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

評論

推薦文章

暴跌中幣價相當堅挺,從HIP、Vaults以及Token模型的角度再談Hyperliquid

自2014年門頭溝事件起,中心化交易平臺的腐敗與市場操縱問題便始終困擾着Crypto的所有參與者。...

coincaso
68 2個月前

Ondo背靠特朗普與華爾街,RWA迎來爆發?

編者按:Ondo Finance 推出 Layer 1 公鏈 Ondo Chain,推動 RWA...

coincaso
68 2個月前

今日推薦 | 速覽Berachain背後助推器Royco:TVL突破30億美元,躍居Yield協議第二!

過去一年,DeFi生態簡直是“开掛”狀態,資金如洪水般湧入,機構瘋狂布局,大家都在說:這波賺錢機會...

coincaso
74 2個月前

Uniswap V4 正式上线後 ,有哪些值得關注的創新項目?

編者按:文章介紹了 Uniswap V4 的創新性功能,重點闡述了 Hooks 的模塊化特性,使开...

coincaso
81 2個月前

波場TRON行業周報:“就職典禮”利好出盡,TRX成WLFI战略儲備之一

一.前瞻1. 宏觀層面總結以及未來預測市場普遍預計,美聯儲將在1月30日的會議上決定維持當前的聯邦...

coincaso
70 2個月前

來火幣HTX過肥年:春節樂翻天,$60萬紅包搶不停,更多新春福利待領取

春節將至,火幣HTX攜手波場TRON生態推出“春節樂翻天,$60萬紅包搶不停”活動,用數字紅包傳遞...

coincaso
63 2個月前