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
数字身份生态Aspecta完成350万美元种子轮融资:金色财经报道,由AI驱动,专注于开发者的数字身份生态Aspecta宣布完成350万美元种子轮融资,同时公布其旗舰产品 Aspecta ID 的全球公开测试计划。
Aspecta种子轮融资由A、B两个阶段构成。A阶段于2022年4月完成,由真格基金、奇绩创坛(原YC China)、UpHonest Capital、耶鲁校友基金等机构参与,B阶段于2022年11月完成,由HashKey Capital、Foresight Ventures、SNZ Holding、Infinity Ventures Crypto等机构参与,共募资350万美元。
此外,Aspecta获得了来自Galxe,Mask Network,DoraHacks,CyberConnect,P12等项目方与生态的战略投资与捐赠支持。[2023/3/22 13:19:01]
攻击者合约:
https://blockscout.com/xdai/mainnet/address/0xdbf225e3d626ec31f502d435b0f72d82b08e1bdd
ZBG将于5月11日联合首发Casper(CSPR):据ZBG官方公告,ZBG将于2021年5月11日联合首发Casper(CSPR),并在18:00开放CSPR充值;5月11日19:00开放CSPR/USDT交易。
据悉,ZBG已于3月23日开启Casper申购活动,申购价格低至0.015USDT,预售的Casper代币,将在主网上线90 天后开始逐步解锁,并在 3 个月内完全释放完毕,每周解锁 1/13。同时ZBG “Seed专区”已开启“CSPR锁仓资产交易功能”,用户可以在专区进行自由转让申购到的额度。
更多详情请关注ZBG官方公告。[2021/5/11 21:47:48]
https://blockscout.com/xdai/mainnet/address/0xbE8fe2aE087aeCcB1E46EF206368421c9212637B
https://blockscout.com/xdai/mainnet/address/0x09b4f2551e9f39fa021a99463e21d6044656a7b9
区块链卡牌游戏Crypto Spells发布iOS端应用:日本区块链卡牌游戏Crypto Spells已发布iOS端移动应用程序,并计划在6月首周发布安卓端应用。此外,该游戏还计划于5月31日起在日本关东地区投放电视广告。(Coinpost)[2020/5/30]
https://blockscout.com/xdai/mainnet/address/0xf07ac43678b408ff0c86efff99b8d21af3d38c51
https://blockscout.com/xdai/mainnet/address/0x9c4e6edbc45b16e4378b53cd3e261727e103f633
被攻击合约:
https://blockscout.com/xdai/mainnet/address/0x243E33aa7f6787154a8E59d3C27a66db3F8818ee husdc
印度加密货币银行Nuo Bank即将上线 曾获传媒巨头Naspers高管投资:印度数字货币银行服务平台Nuo Bank本周上线,运用数字货币和区块链复制银行的功能。印度媒体称,这家初创公司获得了印度公司Pay U的CEO Amrish Rau和董事总经理Jitendra Gupta的种子融资,共计投入25万美元。Pay U的母公司是腾讯第一大股东南非传媒巨头Naspers。[2018/3/25]
https://blockscout.com/xdai/mainnet/address/0xe4e43864ea18d5e5211352a4b810383460ab7fcc hwbtc
https://blockscout.com/xdai/mainnet/address/0x8e15a22853a0a60a0fbb0d875055a8e66cff0235 heth
https://blockscout.com/xdai/mainnet/address/0x090a00a2de0ea83def700b5e216f87a5d4f394fe hxdai
以太坊Casper方案遭计算机科学专家质疑:PoS导致权力倾斜引致系统脆弱性:分布式系统专家、虚拟软件公司VMware研究员Dahlia Malkhi在周五的Financial Cryptography 2018会议上对以太坊的Casper扩容协议进行了评论,他表示“我认为就本质而言,权益证明十分脆弱,通过授权一个权力机构来行使主宰权,这在我看来,赋予了富裕阶级更大的权力。”[2018/3/10]
攻击核心点
在 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 规则,避免再次出现此类安全问题。
By:Victory@慢雾安全团队
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。