安全分析:项目方遭遇“打桩机”攻击损失170万美元

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册
2022年3月13日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Paraluni合约遭受攻击,损失约170万美元。成都链安技术团队对此事件进行了相关分析。

#1总述我们以第一笔攻击交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9为例:地址列表攻击地址:0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F攻击合约:0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645ParaProxy:0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4ParaImpl:0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)UGT:0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508UBT:0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134

1. 向CakeSwap(0x7EFaEf62)中通过闪电贷借贷224BSC-USD,224BUSD2. 把第1步借到的代币向Para-LP(0x3fD4FbD7)中添加流动性,并将获得的222枚流动性代币的接收地址指定为UBT(0xcA2ca459)地址,这一步是为了后续的重入做准备。

图1初始准备

3. 攻击合约(0x4770b5cb)调用ParaProxy合约的depositByAddLiquidity函数,添加流动性代币抵押挖矿,此处传入的pid为18,对应的Para-LP(BSC-USD/BUSD)0x3fD4FbD7a83062942b6589A2E9e2436dd8e134D4,但是token0,token1传入的地址为UGT、UBT的地址,数量为1e18。

图2重入攻击

4. 此处原本正常的逻辑为:添加流动性,并将流动性代币存入pid为18的流动性抵押池,但是本函数在代码中并未检查添加的流动性token0、token1得到的流动性代币是否与pid对应的流动性代币地址一致,导致了攻击的发生。注意,并不是所有的流动性池抵押都有该风险,由于第2524行代码,pool的ticket需要为零地址才能够通过该检查。

但是攻击者通过控制执行逻辑,实际执行的逻辑为:第2505,2506行将攻击者指定的1枚UGT、1枚UBT代币转入ParaProxy合约。然后在第2535行代码用于添加流动性,并在第2537行检查添加的流动性代币数量。

此时,vars.oldBalance为初始流动性代币数量。攻击者为了通过第2537行的检查,在添加流动性的过程中,进行了重入攻击。由于在添加流动性时调用了攻击者构造的恶意代币的transferFrom函数,攻击者在transferFrom函数中才将流动性通过deposit函数存入ParaProxy合约。这也是第2步时攻击合约将流动性代币接收地址指定为UBT合约的原因所在。

在重入过程中,UBT合约存入了真正的LP代币222枚,并计入ParaProxy的账本中。在重入完成后,ParaProxy合约地址新增了222枚LP代币,ParaProxy合约将其视为攻击合约添加的LP,并计入账本中。至此,UBT合约和攻击合约都新增了222枚LP的存取记录。

图3ParaImpl合约相关代码

重入相关过程如下图所示:

图4攻击流程示意图

5. UBT合约和攻击合约分别调用withdraw函数,从ParaProxy合约提取221枚LP(有部分手续费),并归集到攻击合约,由攻击合约将LP移除流动性并获取对应的BSC-USD以及BUSD6. 归还闪电贷225枚BSC-USD,225枚BUSD,并将获利的221枚BSC-USD、225枚BUSD发送到攻击者地址。整个攻击交易执行完成。

#2总结建议攻击者一共执行了约40次攻击,共获利约170万美元(665枚ETH)。截止发稿时,攻击者通过跨链协议将其转到以太坊网络中,并将其中的660枚ETH转入Tornado.Cash,另外5枚ETH转入了0xDd52CE617cAF1b7C8cEaCC111DE2f1c54E20C1b0地址。

本次攻击主要由合约代码中存在逻辑缺陷以及存在资金操作的关键函数未进行防重入导致。建议合约开发者在开发过程中进行完整的测试以及第三方审计,并养成使用Openzeppelin库的ReentrancyGuard合约来进行重入攻击的防范。

热点:区块链 平台 项目

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/zx/3482.html

上一篇 2023年07月01日
下一篇 2023年07月01日

相关推荐

  • 欧艺Web3被骗别慌!冷静应对,追回损失与维权指南

    欧艺Web3被骗别慌!冷静应对,追回损失与维权指南 随着Web3.0概念的兴起和数字货币的普及,越来越多的投资者和用户被这个充满机遇与创新的领域所吸引。“欧艺”(此处假设为一个Web3项目、平台或NFT市场,具体名称请以官方或实际涉事平台为准)作为其中的一个参与者,本应为用

    2026-07-21 08:30:01
    16 0
  • 安卓游戏交易币买错咋别慌!3步教你挽回损失

    安卓游戏交易币买错咋别慌!3步教你挽回损失 在安卓游戏里,不少玩家都遇到过“交易币买错”的糟心事:明明想买体力卷轴,手一滑点成了皮肤礼包;看错折扣活动,误买了原价更贵的道具;甚至给孩子买游戏时,不小心选错了服务器……别急着慌,这类问题其实有解决方法,跟着步骤

    2026-07-10 02:30:02
    25 0
  • 以太坊密码忘记了别慌!这些方法或能帮你挽回损失

    以太坊密码忘记了别慌!这些方法或能帮你挽回损失 以太坊作为全球第二大区块链平台,其私钥/助记词的重要性不言而喻——它相当于你掌握资产“钥匙”,一旦丢失,资产可能永久无法找回,很多人误以为“密码”就是登录密码,但在以太坊生态中,真正决定资产安全的是私钥(长串字

    2026-07-03 14:30:03
    12 0
  • 亿欧Web3升级损失赔偿,用户权益的保障与挑战

    亿欧Web3升级损失赔偿,用户权益的保障与挑战 随着区块链技术和加密货币市场的蓬勃发展,Web3.0作为下一代互联网的概念逐渐走入公众视野,亿欧科技近期宣布对其平台进行Web3升级,旨在为用户提供更加安全、去中心化的服务体验,任何技术革新都可能伴随着不确定性,特别是当涉及

    2026-06-28 02:30:01
    20 0
  • 欧亿钱包删了钱没了怎么找回?别慌,这样操作或能挽回损失

    欧亿钱包删了钱没了怎么找回?别慌,这样操作或能挽回损失 “欧亿钱包删了,里面的钱也没了!”不少用户反映在使用欧亿钱包时,因误删应用、手机故障或账号异常,导致账户资金“消失”,急得像热锅上的蚂蚁,别慌,遇到这种情况先别自乱阵阵脚,按照以下步骤尝试找回,或许能

    2026-06-27 11:30:03
    20 0
  • 安卓Q币充错了怎么办?别慌!三步教你挽回损失

    安卓Q币充错了怎么办?别慌!三步教你挽回损失 在安卓手机上给Q币充值时,谁还没遇到过手滑点错账号的情况?比如本想充自己的小号,结果误操作绑定了别人的;或者选错了金额、到账平台(比如QQ号和微信号混充),看着“充值成功”的提示,心里肯定又急又懊恼,其实别慌,这种

    2026-06-25 21:30:02
    14 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载