宇宙链 宇宙链
Ctrl+D收藏宇宙链

我竟了我自己?|BurgerSwap 被黑分析

作者:

时间:1900/1/1 0:00:00

By:yudan@慢雾安全团队

据慢雾区消息,2021年05月28日,币安智能链(BSC)DeFi项目BurgerSwap被黑,损失达330万美元。慢雾安全团队第一时间介入分析,并将结果分享如下:攻击细节分析

BurgerSwap是一个仿UniswapAMM项目,但是和Uniswap架构有所区别。BurgerSwap架构总体分成。其中Delegate层管理了所有的Pair的信息,并负责创建lpPlatForm层。然后lpPlatForm层再往下创建对应的Pair合约。在整个架构中,lpPlatForm层充当了Uniswap中Router的角色,负责将计算交易数据和要兑换的代币转发到Pair合约中,完成兑换。本次事件的根本正是出在这种架构的问题上。通过一步步分析攻击者的交易行为,我们来还原整个攻击过程的核心:

10T Holdings员工发起的加密风投10SQ正寻求推出新的2亿美元基金:5月11日消息,据彭博社援引两位知情人士报道,一个加密投资者团队正在寻求 2 亿美元来支持一家名为 TenSquared Capital 的新公司的数字资产初创公司。

该公司简称 10SQ,由专注于加密货币的投资公司 10T Holdings 的员工发起。根据 PitchBook 的数据,该公司管理着 12 亿美元的资产。知情人士称,该公司已经耗尽了所有资本,并正在停止进行新的投资。10T Holdings 投资了数字资产交易平台 Kraken、加密钱包制造商 Ledger 和 Bored Ape Yacht Club 的创建者 Yuga Labs 等公司。[2023/5/11 14:57:44]

《福布斯》杂志将在The Sandbox上推出元宇宙:12月14日消息,The Sandbox发文称已与《福布斯》杂志达成合作,后者将在The Sandbox上推出与Polygonal Mind Creative Studio合作开发的元宇宙,用户可以在其中了解福布斯的历史、创始人Malcolm Forbes以及了解30 Under 30 Gallery等内容。若用户购买了福布斯独家的可穿戴设备,则可获得独特的配饰。该元宇宙将于北京时间12月14日23:00到12月28日23:00开放,并将总计提供5万枚SAND奖励。[2022/12/14 21:44:17]

本次攻击开始于Pancake的闪电贷,攻击者从Pancake中借出了大量的WBNB,然后将这些WBNB通过BurgerSwap兑换成Burger代币。在完成以上的操作后,攻击者使用自己控制的代币(攻击合约本身)和Burger代币通过Delegate层创建了一个交易对并添加流动性,为后续攻击做准备。

FTX攻击事件黑客已将BSC上的14,738枚BNB兑换成370万枚BSC-USD:金色财经报道,据派盾预警监测,FTX攻击事件黑客(链上地址被标记为FTX AccountsDrainer)已将BSC上的14,738.20枚BNB(约395万美元)兑换成370万枚BSC-USD(约370万美元)。[2022/11/17 13:17:50]

MineablePunks系列NFT市值突破1000ETH:金色财经报道,据NFTGo.io数据最新数据显示,MineablePunks系列NFT总市值为1113.53ETH,过去24小时的交易额为1763.64ETH,涨幅达298%;地板价为0.0359ETH,持有NFT地址总数为503个。[2022/11/13 12:57:23]

在完成代币的创建和准备之后,攻击者立马通过PaltForm层的swapExactTokensForTokens函数发起了兑换,兑换路径为

Otherdeed#17 NFT以140枚以太坊的价格成交:9月8日消息,Yuga Labs元宇宙项目Otherside上地块Otherdeed #17 NFT以140枚以太坊(约22.7万美元)的价格成交,该枚NFT于今年6月30日首次出售,售价为100ETH。[2022/9/8 13:17:01]

接下来进行了最关键的一次操作。由于先前攻击者在创建交易对的时候使用的是自己控制的代币,在代币兑换过程中,_innerTransferFrom函数会调用攻击者控制的代币合约,于是攻击者可以_innerTransferFrom函数中重入swapExactTokensForTokens函数。为什么攻击者要这样做呢?

通过对PlatForm层的swapExactTokensForTokens函数进行代码分析,我们不难发现,合约在调用_innerTransferFrom函数时首先计算了用户的兑换数据,然后在_innerTransferFrom函数的操作后使用预先计算的数据来转发到底层进行真正的代币兑换。从这个函数层面来看,就算攻击者重入了swapExactTokensForTokens函数,底层调用的swap函数也是独立的,咋一看并没有什么问题,但是链上的一个行为引起了慢雾安全团队的注意:我们惊讶地发现,在重入的兑换过程中,兑换的数量竟然没有因为滑点的关系而导致兑换数量的减少。这究竟是什么原因呢?看来关键是底层的Pair合约的问题了。我们又进一步分析了底层调用的Pair合约,代码如下:通过分析Pair的代码,我们再次惊讶地发现在swap的过程中,合约竟然没有在兑换后根据恒定乘积公式检查兑换后的数值!!也就是说,Pair合约完全依赖了PlatForm层的数据进行兑换,导致了本次事件的发生。由于Pair层本身并不做恒定乘积的检查,在重入的过程中,PlatForm层的兑换数据预先进行了计算,在_innerTransferFrom函数完成后,Pair的更新数据也没有反映到PlatForm层中,导致重入交易中的兑换产生的滑点并不影响下一次的兑换,从而造成了损失。用图来看的话大概如下:

总结

本次攻击属于BurgerSwap架构上的问题,由于Pair层完全信任PaltForm层的数据,并没有自己再做一次检查,导致攻击的发生。最近DeFi安全事件频发,针对越来越密集的DApp攻击事件,慢雾安全团队建议DApp开发者在移植其他协议的代码时,需充分了解移植协议的架构,并充分考虑移植协议和自身项目的兼容性,且需通过专业安全审计机构的审计后才上线,防止资金损失情况的发生。攻击交易参考:https://bscscan.com/tx/0xac8a739c1f668b13d065d56a03c37a686e0aa1c9339e79fcbc5a2d0a6311e333

标签:FORSWAPAIRPAIVulcan Forgedlayer币和uniswap的关系AirNFTspaid币官方最新消息

酷币交易所热门资讯
DFINITY的生态应用 dscvr.one是什么? | 不一样的「DFINITY」词贴

dscvr.one是一个基于DFINITY开发的去中心化社交内容平台。目前在dscvr.one平台上已经有包含DFINITY、人生、梦想、音乐、艺术等在内的主题板块,用户可以自由发布和分享相关内容.

1900/1/1 0:00:00
对话王立:完成4000万美元融资的贝宝金融选择了艰难但正确的路

5月10日,加密金融服务商贝宝金融宣布完成A轮4000万美元战略融资,资方包括万物资本、红杉资本中国基金、DragonflyCapital、BAI资本以及老虎环球基金等多家顶级传统投资机构.

1900/1/1 0:00:00
波卡即将起飞,却突遇大环境变冷,后续该何去何从?丨波卡生态一周观察

◇Polkadot生态研究院出品,必属精品◇ 波卡一周观察,是我们针对波卡整个生态在上一周所发生的事情的一个梳理,同时也会以白话的形式分享一些我们对这些事件的观察。本文旨在提供信息和观点,不为任何项目作背书.

1900/1/1 0:00:00
超话社区100期|首个去中心化云存储聚合平台——Coldstack

5月07日晚8点,Coldstack首席执行官AlexanderShishow做客星球超话社区,详解首个去中心化云存储聚合平台。群内还有拼手气红包福利以及星球周边哦~扫码回复「Coldstack」进群.

1900/1/1 0:00:00
比特币牛市结束了吗?Pantera Capital给出答案

过去两周,加密货币连跌不止,多重因素影响下,市场悲观情绪弥漫,坊间关于「牛」、「熊」的争论不休.

1900/1/1 0:00:00
Deribit期权市场播报0524—— 关键点位

播报数据由Greeks.live和Skew.com提供。昨晚数字货币的行情非常危险,比特币期货一度跌破30000美元,以太坊一度跌破2000美元,因为下方没有明显的支撑,如果昨天关键点位守不住,行情继续下跌引发DeFi的连锁反应,后果.

1900/1/1 0:00:00