故技重施 —— Hundred Finance 被黑分析
By:Victory@慢雾安全团队
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。

2. 攻击者通过攻击合约向 USDC 借贷合约抵押 1,200,000 枚 USDC,换取 59,999,789.075 枚 hUSDC。

随后通过借贷合约借走 1,200,000 枚 USDC,但是由于借贷合约记账是在转账之后,因此攻击者能在转账的时候同时开始他的攻击。

因为 XDai 链上的 USDC、WBTC、WETH 是有转账后回调步骤,攻击者在转完 USDC 之后再次重入到 WBTC 的借贷合约。同时因为上一步借走 USDC 的数据还未记录,所以攻击者又顺利的借走 16.17030715 枚 WBTC, 此后再次重入到 WETH 的借贷合约,借走 24.715930916595319168 枚 WETH。

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。

4. 最后攻击者归还从 SushiSwap 借出来的 xDai 和 USDC,剩余的非法获利转到攻击者账户上。

MistTrack
据慢雾 AML 分析,黑客地址将资金从 XDai 跨链到以太坊后,将代币均兑换为 ETH,且在以太坊上的黑客地址初始资金来源于 Tornado.Cash。

最后将获利的 2,363 ETH 分成 32 次转入 Tornado.Cash,以躲避追踪。

总结
本次攻击事件是由于在借贷合约中的 borrowFresh 函数没有在代币转账前进行记账并且使用的 token 是有回调机制造成的,进而导致攻击者可以在转账之后重入到其他借贷合约。慢雾安全团队建议使用非 ERC20 标准的 token 合约时,要注意兼容性,合约记账应在代币转账之前做好记录,遵循 Checks-Effects-Interactions 规则,避免再次出现此类安全问题。
往期回顾
“零元购” —— TreasureDAO NFT 交易市场漏洞分析

慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾 GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
知识星球
https://t.zsxq.com/Q3zNvvF
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
LuBian 矿池遭黑客攻击被窃取巨额比特币事件技术溯源分析报告作者:国家计算机病毒应急处理中心2020年12月29日,LuBian矿池发生一起重大黑客攻击事件,总计127272.06953176枚比特币(当时市值约35亿美元,现市值已达150亿美元)被攻击者窃取
-
为什么加密市场情绪突然变得如此悲观?原文标题:Why Did Crypto Sentiment Get So Bearish? 原文作者:Jack Inabinet,Bankless 原文编译:Peggy,BlockBeats编者按:在
-
宏观解读:鲍威尔的“浓雾驾驶”与金融“饥饿游戏”原文标题:"Driving in Fog” and the Financial Hunger Games 原文作者:@arndxt_xo 原文编译:叮当,Odaily 星球日报大幅回调与量化宽松(QE
-
DeFi 的自然选择:适者生存作者:cryptographic 编译:Block unicorn前言 自然是冷酷无情的,它没有情感,没有感觉,没有依恋,它只进行着一场永无止境的考验:这种设计是否值得生存。 金融市场亦是如此,随着时
-
MEET48:从造星梦工厂走向链上奈飞 —— AIUGC 与 Web3 重塑文娱经济
Web3文娱正从泡沫退潮迎来重启时刻,以MEET48为代表的项目正通过AI Web3 UGC技术融合重塑内容生产与价值分配范式,构建可持续代币经济体系,从应用走向基础设施,致力成为"链上奈飞"并推动W
-
BitMEX Alpha:这次也一样,加密周期不会失效“每当我们听到‘这次不一样’时,周期最终都证明‘并无不同’。” 每隔四年,比特币市场都会遵循一个极其一致的节奏,而塑造这个节奏的是一个比特币的原生代码:挖矿奖励减半。大约每 210,000 个区块,网
-
利润压缩下的矿企求生:Marathon 卖币求生,行业抛售潮暗涌原文作者:Gino Matos 原文编译:Luffy,Foresight NewsMarathon 的第三季度财报中,暗藏着一项明确的政策转变。公司宣布,今后将出售部分新挖出的比特币,以支撑运营资金需
-
Geth 源码系列:交易设计及实现1. 交易简介 以太坊执行层可以看作是一个交易驱动的状态机,交易是唯一修改状态的方式。交易只能由 EOA 发起,并且会在交易中附加私钥的签名,交易执行之后就会更新以太坊网络的状态。以太坊网络中最简单的
- 成交量排行
- 币种热搜榜
OFFICIAL TRUMP
Pepe
泰达币
比特币
以太坊
USD Coin
Solana
大零币
瑞波币
First Digital USD
币安币
Filecoin
狗狗币
Internet Computer(Dfinity)
达世币
ZEN
AR
OKB
BSV
ETC
EOS
MINA
CFX