MasterChef 合约170万美元的资金被盗

一张支票提款两次的作案手法 你一定不陌生 Paraluni 被攻击事件分析

北京时间2022年3月13日上午9:04,CertiK安全技术团队监测到Paraluni's MasterChef 合约遭到攻击,大约170万美元的资金通过多笔交易从该项目中被盗。

下文CertiK安全团队将从该项目的操作及合约等方面为大家详细解读并分析。

漏洞交易

攻击者地址: https://bscscan.com/address/0x94bc1d555e63eea23fe7fdbf937ef3f9ac5fcf8f

交易实例: https://bscscan.com/tx/0x70f367b9420ac2654a5223cc311c7f9c361736a39fd4e7dff9ed1b85bab7ad54

合约地址

Masterchef合约: https://bscscan.com/address/0xa386f30853a7eb7e6a25ec8389337a5c6973421d#code

攻击流程

注意,这个攻击流程是以下面这个交易为基础的:https://bscscan.com/tx/0x70f367b9420ac2654a5223cc311c7f9c361736a39fd4e7dff9ed1b85bab7ad54

准备阶段:

  • 攻击者部署了两个恶意的代币合约UGT和UBT。

  • 在UBT代币合约中,有两个恶意的函数实现:

1. 在 "transferFrom() "函数中,攻击者实现了对MasterChef的 "deposit() "函数的调用,以存入LP代币。

2. 一个 "withdrawAsset() "函数,将调用Masterchef的 "withdraw() "来提取存入的LP代币。

攻击阶段:

  • 攻击者利用闪电贷获得了156,984 BSC-USD和157,210 BUSD。

  • 攻击者向ParaPair发送通过闪电贷获得的BSC-USD和BUSD代币,并收到155,935枚LP代币作为回报。

  • 然后,攻击者调用 "depositByAddLiquidity() "函数,将LP代币存入资金池。

1. 在调用此函数时:输入参数“_pid ”为18,“_tokens ”为[UGT,UBT]。

2. 因为 depositByAddLiquidity() 会调用 “UBT.transferFrom()” 函数, 因此MasterChef.deposit() 函数会被触发并且向合约存入 155,935 LP 代币。

3. 因此, 155,935 LP 代币被存入了两次并且攻击者获得了两份“userInfo” 的记录 (一次是从 UBT, 另一次是从攻击者的合约)。

  • 最后,攻击者提取了两次:

1. 第一次是通过函数“UBT.withdrawAsset()”。

2. 另一个是来自攻击者对 “Masterchef.withdraw() ”函数的调用。最后,攻击者删除了流动资金并返还了闪电贷。

合约漏洞分析

  • 在函数`MasterChef.depositByAddLiquidity()`中,作为参数传入的`_tokens`可以与池中的编号为`_pid`的tokens不匹配。


  • `depositByAddLiquidity()`函数通过调用`addLiquidityInternal()`函数,触发了传入恶意代币(UBT)的“transferFrom”函数,进而导致了重入的问题。因此,同一份LP代币被存入两次。

资产去向

截至3月13日,总共有价值约170万美元的资产被盗。3000个BNB仍然在攻击者在BSC的地址中,235个ETHs则通过Birdge转移到以太坊,并通过Tornado进行洗白。

写在最后

该次事件可通过安全审计发现相关风险:审计可以发现重入问题外部依赖问题

同时,CertiK的安全专家建议:

  • 时刻关注函数的外部输入,尽量避免传入合约地址作为参数。

  • 关注外部调用,为所有可能出现重入危险的外部调用函数加上“nonReentrant”修饰函数。

本次事件的预警已于第一时间在CertiK项目预警推特

除此之外,CertiK官网已添加社群预警功能。在官网上,大家可以随时看到与漏洞、黑客袭击以及Rug Pull相关的各种社群预警信息。

24小时热点

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2320904

Opera House

了解CHIA这篇就够了

这些清单旨在作为信息来源和研究的出发点,为你的研究提供常识性 ...

636559

Kusama 测试网

什么是 Infura?

11 月 11 日,因以太坊和 IPFS 的 API 服务供 ...

626973

IDG资本

OpenSea 为例子教大家如何购买 NFT

就如同流动性挖矿刚起步时候一样,大多数用户并不了解 NFT ...

609663

CryptoSpells

绿地集团数字化战略的NFT形象——8302款无聊猿!

30年前,绿地还是一家注册资本2000万元的小型绿化公司,历 ...

493829

Bybit

什么是私钥?

私钥是怎么来的,它跟你的密码学货币资产有何关联。

486042

芝麻开门交易所

2024年模因币牛巿SHIB是否能达到1美元?市场另外3个meme币也在热卖

SHIB是仅次于DOGE的第二大流行模因币,它能否达到1美元 ...

476086

Business2Community

数字人直播软件多少钱

数字人直播软件根据您使用的平台、功能范围不同,价格也不尽相同 ...

459247

MXC交易所

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

449990

DigiFinex

链圈百科:环境影响评价信用平台

环境影响评价信用平台是指一种使用信用技术来评估环境影响并对社 ...

417532

Tokhun