Paid Network 1.6 亿美元铸币疑云,慢雾拆解盗攻击细节

本次攻击可能是地址私钥被盗,或者是其他原因,导致攻击者直接调用函数进行任意铸币,再次对权限过大问题敲响了警钟。

原文标题:《铸币疑云 —— Paid Network 被盗细节分析》 撰文 : 慢雾安全团队

据消息,以太坊 DApp 项目 Paid Network 遭受攻击。攻击者通过合约漏洞铸造近 1.6 亿美元的 PAID 代币,并获利 2000 ETH(约 300 万美元)。慢雾安全团队在第一时间跟进并分析,现在将细节分析给大家参考。

以上是整个攻击过程的调用流程细节。

可以看到整个攻击过程非常的简单,攻击者通过调用代理合约中函数签名为 (0x40c10f19) 的这个函数,然后就结束了整个攻击流程。由于这个函数签名未知,我们需要查阅这个函数签名对应的函数是什么。

通过查阅这个函数签名,我们发现这个签名对应的正是 mint 函数。也就是说,攻击者直接调用了 mint 函数后就结束了攻击过程。那么到这里,我们似乎可以得出一个 mint 函数未鉴权导致任意铸币的漏洞了。通过 Etherscan 的代币转移过程分析,似乎也能佐证这个猜想。

但是,事实真是如此吗?

为了验证未鉴权任意铸币的这个想法,我们需要分析合约的具体逻辑。由于 Paid Network 使用的是合约可升级模型,所以我们要分析具体的逻辑合约 (0xb8...9c7)。但是在 Etherscan 上查询的时候,我们竟然发现该逻辑合约没有开源。

这个时候,为了一探究竟,我们只能使用反编译对合约的逻辑进行解码了。通过 Etherscan 自带的反编译工具,可以直接对未开源合约进行反编译。在反编译后,我们却发现了一个惊人的事实:

通过反编译,我们不难发现,合约的 mint 函数是存在鉴权的,而这个地址,正是攻击者地址 (0x187...65be)。那么为什么一个存在鉴权的函数会被盗呢?由于合约为开源,无法查看更具体的逻辑,只能基于现有的情况分析。我们分析可能是地址 (0x187...65be) 私钥被盗,或者是其他原因,导致攻击者直接调用 mint 函数进行任意铸币。

总结

本次攻击过程虽然简单,但是经过细节分析后却有了惊人的发现。同时这次的攻击也再次对权限过大问题敲响了警钟。如果这次的 mint 函数给到的鉴权是一个多签名地址或是使用其他方法分散权限,那么此次攻击就不会发生。

参考链接:

攻击交易:

https://etherscan.io/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻 ChainNews 立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

链闻仅提供相关项目信息,不构成任何投资建议。

坚决杜绝各类代币发行及炒作,如发现文章含敏感信息,请点击「举报」,我们会及时处理。

举报


【资讯底部广告】添加微信送福利 高胜率百万布局等于币圈合约社区天堂,众多专业团队实力派导师拥有上万粉丝,24小时免费提供服务指导,在线解套服务,微信:STYB8889

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到irena@aicoin.com,本平台相关工作人员将会进行核查。

发表评论

暂时没有评论,赶紧抢沙发吧!