据消息,以太坊DApp项目PaidNetwork遭受攻击。攻击者通过合约漏洞铸造近1.6亿美元的PAID代币,并获利2000ETH(约300万美元)。慢雾安全团队在第一时间跟进并分析,现在将细节分析给大家参考。
攻击细节分析
Zerion推出“Perks”功能 支持查看空投、铸币、奖励、解锁等:金色财经报道,Zerion在其Web3钱包中推出了一个名为“Perks”的新功能。Zerion Perks选项卡中集成Web3能力聚合方案Daylight,支持查看空投、铸币、奖励、解锁等能力。
2022年10月份,Zerion完成1230万美元B轮融资,本轮融资由Wintermute Ventures领投,参投方包括Mosaic、Coinbase Ventures、Alchemy和Placeholder等。[2023/3/31 13:37:22]
以上是整个攻击过程的调用流程细节。
Animoca Brands已从Mocaverse NFT铸币中赚取550万美元:金色财经报道,数据显示Animoca Brands已从Mocaverse NFT铸币中总计赚取550万美元,今日Animoca Brands旗下NFT系列Mocaverse已完成铸造,8888枚NFT总供应量已全部释放,另据NFTGO数据显示,当前Mocaverse地板价为1.63 ETH,市值达到2250万美元,交易额为581万美元。(proactiveinvestors)[2023/3/9 12:52:20]
可以看到整个攻击过程非常的简单,攻击者通过调用代理合约中函数签名为(0x40c10f19)的这个函数,然后就结束了整个攻击流程。由于这个函数签名未知,我们需要查阅这个函数签名对应的函数是什么。
基于BCH网络的USDT上线 已铸币600万枚:根据CoinDesk的分析,BCH在开发进展与社交媒体上的讨论,还是要超过中文世界似乎更为风光的BSV。近期对BCH最大的利好自然是基于BCH链的USDT即将发行。7月9日Tether从比特币omni网络转移了600万枚USDT至BCH的SLP网络。再之前,Tether基于BCH链发行了3027个USDT,但销毁了其中的2017个。据BCH爱好者Brucelee表示,coinex交易所称当USDT_SLP上线后会第一时间进行支持。(吴说区块链)[2020/7/10]
过去25天Tether新增铸币10亿USDT:在过去的25天时间里,Tether Treasury一直在加大USDT发行量,已经新增铸币超过价值10亿美元的USDT,相当于每天新增铸币4000万美元USDT。根据Tether透明度报告显示,USDT目前资产总额约为71亿美元,随着大量稳定币涌入市场,很容易导致USDT出现溢价交易,而且自今年年初以来,USDT市值已增加56%。(beincrypto)[2020/4/22]
通过查阅这个函数签名,我们发现这个签名对应的正是mint函数。也就是说,攻击者直接调用了mint函数后就结束了攻击过程。那么到这里,我们似乎可以得出一个mint函数未鉴权导致任意铸币的漏洞了。通过Etherscan的代币转移过程分析,似乎也能佐证这个猜想。
但是,事实真是如此吗?
为了验证未鉴权任意铸币的这个想法,我们需要分析合约的具体逻辑。由于PaidNetwork使用的是合约可升级模型,所以我们要分析具体的逻辑合约(0xb8...9c7)。但是在Etherscan上查询的时候,我们竟然发现该逻辑合约没有开源。
这个时候,为了一探究竟,我们只能使用反编译对合约的逻辑进行解码了。通过Etherscan自带的反编译工具,可以直接对未开源合约进行反编译。在反编译后,我们却发现了一个惊人的事实:
通过反编译,我们不难发现,合约的mint函数是存在鉴权的,而这个地址,正是攻击者地址(0x187...65be)。那么为什么一个存在鉴权的函数会被盗呢?由于合约未开源,无法查看更具体的逻辑,只能基于现有的情况分析。我们分析可能是地址(0x187...65be)私钥被盗,或者是其他原因,导致攻击者直接调用mint函数进行任意铸币。
总结
本次攻击过程虽然简单,但是经过细节分析后却有了惊人的发现。同时这次的攻击也再次对权限过大问题敲响了警钟。如果这次的mint函数给到的鉴权是一个多签名地址或是使用其他方法分散权限,那么此次攻击就不会发生。
参考链接:
攻击交易:
https://etherscan.io/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。