加密孵化机构 DAO Maker 疑似遭受黑客攻击,导致合约大量 USDC 被转出

2021年8月12日,根据慢雾社区的消息,加密孵化机构 DAO Maker 疑似遭受黑客攻击,导致合约大量 USDC 被转出,慢雾安全团队立即介入分析,并将分析结果分享如下:

攻击目标

在这次攻击中,攻击者部署并打开了一个攻击契约(0x1c),用于从Dao制造者受害者契约(0x41)中快速批量窃取资金。

攻击者地址1:

0xd8428836ed2a36bd67cd5b157b50813b30208f50

攻击者地址2:

0xef9427bf15783fb8e6885f9b5f5da1fba66ef931

攻击合同:

0x1c93290202424902a5e708b95f4ba23a3f2f3cee

DaoMaker合同:

0x41B856701BB8C24CECE2AF10651BFAFEB57CF49

DaoMaker合同开发者:0x054E71D5F096A0761DB7DBE5CEC5E2BF8971C

Dao制造者管理员:0x0EBA461D9829C4E464A68D48573750476CFB6F559

攻击细节

此攻击与常规攻击的区别在于Dao制造者受害者契约(0x41)不是开源的,而攻击契约(0x1c)是开源的。

权利的游戏 :DAO Maker 被黑分析

我们可以从上图中的开源攻击契约和链记录中看到:

1.黑客调用攻击契约(0x1c)的H函数,H函数循环调用F函数。F函数通过DaoMaker受害合同的0x4b4f892a函数获取受害合同(0x41)中普通用户的usdc存款金额。

2.然后,函数H调用Dao maker(0x41)的取款用户(0x50b158e4)函数,以传入用户地址、用户存款的usdc地址和要取款的数量。

3.然后Dao制造者受害者契约(0x41)将契约中的usdc转移到攻击契约(0x1c)。

通过以上行为分析,我们可以发现攻击契约(0x1c)调用;受损合同的名称(0x41);从用户函数中提取,受损合同(0x41)将合同管理的资金直接转移到攻击合同(0x1c)。我们直接反编译受害者合同(0x41)并查看DrumfromUser函数以进行简单分析:

权利的游戏 :DAO Maker 被黑分析

通过反编译的代码,我们可以发现这个函数有权限检查。只有Dao合同才能调用此函数来转移用户的资金。但攻击契约(0x1c)显然不是Dao契约,因此其Dao契约必须由攻击者替换。

通过链分析,我们可以清楚地看到:

1.受侵害合同部署者(0x05)正在部署受侵害合同(0x41);之后,0x0eba461d9829c4e464a68d4857350476cfb6f559;设置为管理员角色的地址:

发送哈希:

0xA1B4FCEB671BB70CE154A69C2F4BD6928C11D98CBCFBFF6E5CDAB9961BF0E6D

权利的游戏 :DAO Maker 被黑分析

2.然后,受损合同部署者(0x05)通过调用revokerole函数放弃受损合同(0x41)的管理权限:

Tx哈希:

0x773613398F08DDCE2CC9DCB6501ADF4F5F159B4E9E2774A559BB1C588C1B8

权利的游戏 :DAO Maker 被黑分析

3.管理员在UTC;将Dao合同设置为在8月12日01:27:39攻击合同(0x1c):

Tx哈希:

0x2FBA930502D27F9C9A2F2B9337A014953DDA7527029645752B2A6507CA6B0D6

权利的游戏 :DAO Maker 被黑分析

因此,攻击者可以使用此攻击契约(0x1c)窃取受损契约(0x41)中用户的资金。目前,被盗资金被转换成ETH并转移到攻击者的地址2(0xef)。

总结

此攻击可能是由于泄露了Dao maker受害者契约的管理员私钥造成的。窃取私钥后,攻击者用攻击契约替换受害者契约的Dao契约。攻击者通过替换的合同转移合同中的用户资金。由于合同部署方在设置合同管理员后放弃了合同管理权限,项目方目前可能无法有效收回合同控制权。

资讯

梅西接受PSG作为薪水的一部分

2021-8-13 12:10:38

资讯

Axie infinity的人口增长和经济模型设计存在缺陷

2021-8-13 12:17:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索