木星链 木星链
Ctrl+D收藏木星链
首页 > 火必 > 正文

FUR:慢雾:Furucombo被黑分析

作者:

时间:1900/1/1 0:00:00

著名DeFi项目Furucombo被黑,损失超1500万美元。慢雾安全团队第一时间介入分析,并将攻击细节分享给大家。

攻击细节分析

本次发生问题的合约在Furucombo本身的代理合约当中。整个攻击流程很简单。攻击者通过设置了Furucombo的AaveV2Proxy的逻辑地址导致后续通过Furucombo代理合约调用的逻辑全部转发到攻击者自己的恶意合约上,导致任意资金被盗。

但是如果事情那么简单,那么本次分析不值一提。问题远比想象的复杂得多。

如上图所示攻击者的入口在Furucombo的batchExec函数,我们先对batchExec函数进行分析:

Trait Sniper:空投申领仍在测试,重启时间将另行公布:8月1日消息,NFT稀有度排名工具Trait Sniper发布公告称,由于TwitterAPI的问题,空投申领仍在测试中,重启时间将另行公布。

此前消息,Trait Sniper发布公告称,将于北京时间8月1日20时启动空投。[2023/8/1 16:12:07]

以上是FurucomboProxy合约的batchExec函数的具体实现,其中_preProcess和_postProcess合约分别是对调用前后做一些数据上的处理,不涉及具体的调用逻辑,这边可以先忽略。我们主要观察核心的_execs函数:

Wemade将发行区块链棒球游戏R1B:金色财经报道,Wemade将发行区块链棒球游戏Round 1 Baseball。用户可以通过游戏收集 \"金钱球 \"实用代币,并通过投注获得 \"R1 \"代币。\"R1 \"是可在R1B和R1元区使用的治理令牌。该游戏正处于开发的最后阶段,预计将于2023年底在全球推出。[2023/3/2 12:38:42]

通过对execs代码的分析不难发现,函数的主要逻辑是对configs数组的数据做检查,并根据configs数组的数据对data进行一些处理。但是回顾上文中攻击者的调用数据,不难发现攻击者的调用数据中,configs的数据是一个0地址:

Soluna Holdings宣布进行注册直接发售:金色财经报道,加密采矿数据中心开发商Soluna Holdings宣布已与公司的某些现有投资者签订证券购买协议,初始购买金额为855,000美元的普通股和购买普通股的五年认股权证,包括之前为公司可转换票据交易提供资金的投资者。认股权证可立即行使,行使价为每股 0.76 美元,如果以现金全额行使,潜在总行使价最高可达 1,710,000 美元。公司打算将此次发行的净收益用于数据中心的收购、开发和增长,包括加密货币挖掘处理器、其他计算机处理设备、数据存储、电力基础设施、软件和不动产(即土地和建筑物)和业务,包括但不限于 Project Dorothy 设施,以及用于营运资金和一般公司用途。[2022/12/6 21:24:25]

这里有一个trick,由于?0地址是一个EOA地址,所有对EOA地址的函数调用都会成功,但是不会返回任何结果。结合这个trick,execs函数中的关于configs数据的部分可以先暂时忽略。直接看到最后的核心_exec函数:

欧洲央行行长:必须继续加息以抑制通胀:金色财经报道,欧洲央行行长Christine Lagarde周三表示,欧洲央行必须继续加息以抑制通胀,即使收紧政策的副作用是增长放缓。她说:“中期通胀率将恢复到2%,我们将做我们必须做的,即在接下来的几次会议上继续加息。”

她认为,如果我们不兑现(我们的任务),那将对经济造成更大的伤害。(路透社)[2022/9/28 5:57:42]

_exec函数的逻辑也很简单,在校验了_to地址后,直接就将data转发到指定的_to地址上了。而通过对攻击交易的分析,我们能发现这个_to地址确实是官方指定的合法地址。

最后一步,便是调用_to地址,也就是官方指定的AaveV2Proxy合约的initialize函数,将攻击者自己的恶意地址设置成AaveV2Proxy合约的逻辑地址。通过对Furucombo合约的分析,可以发现整个调用流程上没有出现严重的安全点,对调用的地址也进行了白名单的检查。那么问题只能是出在了对应要调用的代理逻辑上,也就是AaveV2Proxy合约。

我们直接分析AaveV2Proxy合约的initialize函数的逻辑:

可以看到initialize函数是一个public函数,并在开头就检查了_implementation是否是0地址,如果是0地址,则抛出错误。这个检查的目的其实就是检查了_implementation是否被设置了,如果被设置了,就无法再次设置。根据这个设置,不难想出initialize这个函数只能调用一次。除非AaveV2Proxy从来没有设置过_implementation,否则这个调用是不会成功的。难道Furucombo真的没有设置过对应的_implementation吗?带着这样的疑问,我们检查了交易内的状态变化。如下:

可以看到,交易中改变了存储位置为0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc的内容,而写入的内容正是攻击者自己的恶意合约地址?0x86765dde9304bea32f65330d266155c4fa0c4f04。

而?0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc这个位置,正是_implementation数据的存储地址。

也就是说,官方从来没有设置过?AaveV2Proxy合约的_implementation地址,导致攻击者钻了这个空子,造成了Furucombo资产损失。

总结

通过对整个事件的分析来看,Furucombo此次事故并不在安全漏洞的范畴内,主要的原因在于官方将未启用的?AaveV2Proxy合约添加进了自己的白名单中,并且未对AaveV2Proxy合约进行初始化,导致攻击者有机可乘。

建议

目前,由于Furucombo遭受攻击,导致任何将代币授权过给Furucombo合约(0x17e8ca1b4798b97602895f63206afcd1fc90ca5f)的用户都将面临资金损失的风险。

慢雾安全团队建议与Furucombo交互过的用户检查是否有将相关代币授权给Furucombo合约。如有授权,应及时撤销相关授权,避免进一步损失。

来源:金色财经

标签:FURCOMUCOCOMBOFurukuruHoDooi.comkucoin与成都柠檬云combo币暴跌

火必热门资讯
区块链:火龙果财经:厉害了 腾讯区块链入选2021年全球区块链50强

当地时间2021年2月2日,美国《福布斯》评选出了2021年全球区块链公司50强榜单,腾讯区块链成功入选榜单.

1900/1/1 0:00:00
ANC:3/1 BTC实操布局 带单斩获1300个点利润 愿与您煮酒论英雄 共创财富路

这里没有华丽的语言,只有实实在在的交易,以及明明郎朗的操作,市场只有一个方向,不是多头也不是空头,而是做对的方向.

1900/1/1 0:00:00
比特币:2.28比特币行情分析,多空趋势会改变吗?以太坊如何提前布局?

====文章摘要====2.28比特币走势分析及操作建议?今日比特币多空怎么看?2.28比特币如何提前布局?2.28比特币还会涨吗?2.28比特币会跌吗?2.

1900/1/1 0:00:00
USD:3/1凌晨ETH行情分析与操作策略

ETH行情分析:?????四小时线来看,目前的大趋势还是看空,短期的反弹是技术的反弹,技术上来看,布林通道整体向下,币价在布林下轨附近震荡,各均线在K线上方形成有效的压制,结合上午的K线来看.

1900/1/1 0:00:00
SEA:Filecoin到底是什么?FIL/币好吗?

把你的文件保存在别人的电脑上是有风险的。然而,Filecoin将数据分割开来,有点像将其切碎,因此没有人可以将其拼凑在一起。但是,它知道数据是如何组合在一起的,并在请求时重新排列数据.

1900/1/1 0:00:00
CEL:牛市来得快 难道走的也快? 今日份BTC、ETH策略

DeFi保险协议InsurAce启动Rinkeby测试网2月28日消息,DeFi保险协议InsurAce正式启动Rinkeby测试网,提供组合保险及质押等服务.

1900/1/1 0:00:00