又是手续费惹的祸!Uranium 协议黑客攻击分析

创宇区块链安全实验室
创宇区块链安全实验室 机构得得号

2021年04月29日 专注构建区块链安全生态,致力于让人类进入安全的区块链世界。

摘要: 2021 年 4 月 28 日,Uranium 项目方在 Twitter 上发出消息,称其下的 AMM 协议遭受黑客攻击,涉及资金高达 5000 万美元,且项目方正在与币安团队联系,并提醒用户停止交易。

事件起因

2021 年 4 月 28 日,Uranium 项目方在 Twitter 上发出消息,称其下的 AMM 协议遭受黑客攻击,涉及资金高达 5000 万美元,且项目方正在与币安团队联系,并提醒用户停止交易。知道创宇区块链安全实验室 在收到相关消息后第一时间展开分析:
项目链接:https://uranium.finance/


知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

事件分析

具体攻击过程如下:

pair 合约地址: 0x367e4273cEF6Fd64d41EA806A588a7A11525181F (其中之一)
攻击合约地址: 0x2b528a28451e9853F51616f3B0f6D82Af8bEA6Ae
攻击者地址: 0xC47BdD0A852a88A019385ea3fF57Cf8de79F019d

攻击者首先通过创建攻击合约(0x2b528a28451e9853F51616f3B0f6D82Af8bEA6Ae)发起攻击,攻击交易记录如下:


知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

攻击合约没有开源,不过反编译代码,发现了攻击者的攻击过程:
反编译代码如下:
https://bscscan.com/bytecode-decompiler?a=0x2b528a28451e9853f51616f3b0f6d82af8bea6ae


知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

伪代码中某函数显示攻击者先遍历存在的 pair 交易对并更新合约代币余额信息,然后授权两种代币数额,并调用 transfer 函数向 pair 合约发起数额为 1 的转账,然后外部调用 swap 函数进行兑换套利攻击。


知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

浏览器记录如下:


知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

通过不停的循环该操作,攻击者就能以很少的代币数额把合约中大量的代币提取出来,又因为攻击者在不停的循环存在的 pair 合约地址,导致其资产在短时间内被大量套利。

分析 pai 合约,发现其修改了 uniswap 的千分之三手续费,改为了万分之十六,但是代码没有更新完善,导致其分母还是一千的平方,判断基本能恒定通过:


知道创宇区块链安全实验室|又是手续费惹的祸!Uranium 协议黑客攻击分析

导致了攻击者能套利其中大量的代币。

事件结论

本次事件由于攻击者利用了 pair 合约手续费代码更新没有完善的问题,计算出了每次可以套利的代币数量,使其能通过合约中 K 值判断,造成了大量代币的损失。在此知道创宇区块链安全实验室提醒各大项目方在项目正式上线前一定要做好代码安全审计以及风控分析,以确保用户和项目方的资金安全。

作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 创宇区块链安全实验室 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信