原题:对铸币的质疑
作者:慢雾安全队
据悉,以太坊 DAPP项目付费网络遭到攻击。攻击者通过合同漏洞伪造了近1.6亿美元的付费代币,获利2000 ETH(约300万美元)。慢雾安全小组第一时间进行了跟踪分析。现在我们将详细介绍给您,供您参考。
攻击细节分析
以上是整个攻击过程的调用过程细节。
可见整个攻击过程非常简单。攻击者调用**契约中签名为(0x40c10f19)的函数,然后结束整个攻击过程。因为这个函数的签名是未知的,所以我们需要查找这个函数签名对应的函数。
通过查找函数签名,我们发现签名对应于Mint函数。换句话说,攻击者直接调用Mint函数并结束攻击过程。因此,在这里,我们似乎可以得到一个漏洞,即造币厂功能未经验证,从而导致任意造币。通过对ETHerscan代币传输过程的分析,似乎也证实了这一猜想。
但真的是这样吗?
为了验证未经授权的任意铸币的想法,我们需要分析合同的具体逻辑。由于支付网络使用合约可升级模,我们需要分析特定的逻辑合约(0xb8。。。9c7)。然而,在ETHerscan上查询时,我们发现逻辑契约不是开源的。
此时,为了找到答案,我们只能用反编译来解码合同的逻辑。通过ETHerscan的内置反编译器,您可以直接反编译未打开的合同。经过反编译,我们发现了一个惊人的事实
通过反编译,不难发现契约的Mint函数有身份验证,而这个地址就是攻击者的地址(0x187。。。65be)。那么,为什么具有身份验证的函数会被窃取呢?由于合同是开源的,我们无法查看更具体的逻辑,只能根据现有情况进行分析。我们分析了地址的私钥(0x187。。。65be)可能被盗,或者其他原因可能导致攻击者直接调用Mint函数来制作任意硬币。
总结
虽然攻击过程简单,但经过详细分析,有惊人的发现。与此同时,这次袭击也为权力过大的问题敲响了警钟。如果mint函数提供的身份验证是多签名地址或使用其他方法分发权限,则不会发生攻击。
参考链接:
攻击事务:
https://ETHerscan.io/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0
文章链接:https://www.btchangqing.cn/205646.html
更新时间:2021年03月07日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。