项目方遇见「打桩机」?被攻击约40次损失170万美元-ODAILY

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

#1总述

我们以第一笔攻击交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9为例:

地址列表

攻击地址:

0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F

攻击合约:

0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645

SafeMoon攻击者在链上向项目方表示想归还资金:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、 预警与阻断平台监测显示,BSC链上SafeMoon项目在升级后引入了任意销毁代币的漏洞。攻击者先买入SafeMoon代币,然后通过销毁SafeMoon代币来拉升价格,接着卖出代币获利。

攻击者为Mevbot,抢跑了0xbcf5e30c164837b5d7c42fd7e33e47a0072dc014e7f0a67aa7710af49d0ce53b攻击交易,该Mevbot在今天之前还抢跑攻击了包括PolarBearX、Nuwa、DBALL、520等其他项目。并且地址有与CEX交互的记录。随后攻击者在链上向项目方表达想要归还资金。[2023/3/29 13:32:24]

ParaProxy:

Go Pocket开发者:ERC721R存在严重Bug,NFT项目方仍可RugPull:4月12日消息,据GoPocket核心开发者BenLaw发推称,ERC721R代码段存在严重Bug,由于缺少对退款接收地址的限制条件,开发者可通过bug,在ERC721R的限制期内抽走NFT合约中的资金,进而绕开该协议的约束,实现RugPull。[2022/4/12 14:20:04]

0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4

ParaImpl:

0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)

UGT:

0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508

三个黑客事件中项目方称只要归还90%被盗资金就不追究责任:10月21日消息,在2017年Parity Multisig Wallet黑客事件中受害的三个以太坊项目Swarm City、Aeternity和Edgeless Project联合发文要求黑客归还被盗的ETH,如黑客归还13.5万ETH(被盗金额的90%)就不追究黑客的责任。四年来,三个项目一直在监控黑客地址的每一笔交易,大部分的ETH仍在黑客的钱包中,还有部分ETH被转到了如币安、FTX等交易所,项目方列出了与黑客有关的地址,并要求交易所冻结从这些账户中转到交易所的资金。[2021/10/21 20:46:11]

UBT

0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134

动态 | 游戏项目方需注意随机数安全,警惕薅羊毛攻击:Beosin(成都链安)预警:根据成都链安区块链安全态势感知系统Beosin-Eagle Eye检测发现,近期疑似薅羊毛攻击多发,攻击者批量操作多个账号并结合随机数计算进行下注,目前发现的攻击收益都较小,最高仅有几十eos,但是攻击者完全可以增加同时操作的账号数量和下注金额来扩大攻击。成都链安提醒各项目方提高警惕,近期请加强安全防范措施,尤其注意随机数安全,必要时联系安全公司进行安全服务,避免不必要的资产损失。[2019/6/17]

1.向CakeSwap(0x7EFaEf62)中通过闪电贷借贷224BSC-USD,224BUSD

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

动态 | EOS上的DAPP共遭遇35起黑客攻击 项目方累计遭受损失72万个EOS:据华尔街见闻统计,截至12月19日,EOS平台上的DAPP应用共遭遇了35起黑客攻击,波及EOS DAPP近30个。除去部分未披露损失情况的应用,项目方已累计遭受损失达72万个EOS,按照现价(18元/EOS)约合1296万人民币。从攻击对象上看,黑客似乎格外青睐竞猜类DAPP应用,91.2%的攻击对象是竞猜类游戏;从受损情况上看,12月份受损金额为近5个月最高,31.65万EOS(约570万人民币)。[2018/12/19]

图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以及BUSD。

6.归还闪电贷225枚BSC-USD,225枚BUSD,并将获利的221枚BSC-USD、225枚BUSD发送到攻击者地址。整个攻击交易执行完成。

#2总结建议

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

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

区块链Qredo销毁4000万个代币,铸造验证者NFT-ODAILY

Qredonians, 今天我们完成了第一次QRDO销毁,为铸造第一组验证者NFT做准备。以下是您需要了解的内容:总共烧毁了4千万的QRDO 约合近1亿美元 40个验证者NFT将被铸造Stargate社区发起升级 Stargate E.

火币交易所详解NFT中的版权漏洞-ODAILY

许多NFT和DAO旨在提供新的或更方便的方式来拥有和销售创意作品。Beeple的NFT作品“EVERYDAYS:TheFirst5000Days”在拍卖会上以6900万美元的价格售出.

[0:0ms0-1:995ms