当前位置:首页区块链我骗了自己——汉堡包被窃听了

我骗了自己——汉堡包被窃听了

我骗了自己——汉堡包被窃听了

据《慢雾地区新闻》报道,2021年5月28日,智能链投币(BSC)DeFi项目burgerswap遭到黑客攻击,损失330万美元。慢雾安全小组首次参与分析,分享结果如下:

攻击细节分析

Burgerswap是Uniswap AMM项目的仿制品,但它不同于Uniswap体系结构。交换体系结构通常分为[委托-gt;lpPlatForm-gt;Pair】。委托层管理所有Pair信息,并负责创建lpplatform层。然后lpplatform层创建相应的pair contract。在整个体系结构中,平台层充当Uniswap的路由器,负责将计算出的事务数据和要交换的代币转发给pair contract完成交换。

我骗了自己——汉堡包被窃听了1

此事件的根源是此体系结构的问题。通过逐步分析攻击者的交易行为,可以还原整个攻击过程的核心

我骗了自己——汉堡包被窃听了2

这次袭击始于pancake的闪电贷款。攻击者从pancake借用大量wbnb,然后通过burgerswap传递这些wbnb;变成汉堡代币。完成上述操作后,攻击者通过委托层用自己的token(攻击契约本身)和burger token创建一个事务对,并增加流动性,为后续攻击做准备。

我骗了自己——汉堡包被窃听了3

创建和准备代币后,攻击者立即通过paltform层的swapexacttokens for tokens函数启动交换。交换路径是[由攻击者控制的代币-gt;汉堡-gt;WBNB】

我骗了自己——汉堡包被窃听了4

接下来,执行最关键的操作。

由于前一个攻击者在创建事务对时使用了自己控制的代币,因此在代币交换过程中, the innertransferfrom函数调用攻击者控制的代币契约,因此攻击者可以在innertransferfrom函数中,重新输入swapexactTokens for tokens函数。攻击者为什么要这样做?

我骗了自己——汉堡包被窃听了5

通过对平台层swap exacttokens for tokens函数的代码分析,不难发现契约在调用innertransferfrom函数时,先计算用户的交换数据,然后在操作innertransferfrom函数后调用,预先计算的数据被转发到底层进行真正的代币交换。从这个函数的角度来看,即使攻击者重新输入swapexacttokens for tokens函数,底层swap函数也是独立的。乍一看,没有问题,但链条上的一个行为却引起了慢雾安保团队的注意

我骗了自己——汉堡包被窃听了6

我们惊奇地发现,在再入交换过程中,交换量并没有因为滑动点而减少。原因是什么?似乎关键是潜在的配对契约问题。我们进一步分析了底层调用的pair contract,代码如下:

我骗了自己——汉堡包被窃听了7

通过分析pair的代码,我们惊讶地发现,在交换过程中,合约没有按照常数积公式检查交换后的价值!!也就是说,pair契约完全依赖于平台层的数据进行交换,导致了这一事件的发生。由于pair层本身不校验常数积,在重入时预先计算平台层交换数据,innertransferfrom函数完成后,pair的更新数据不反映在平台层。因此,交易所在再入交易中产生的滑动点不影响下一个交易所,造成损失。图片如下:

我骗了自己——汉堡包被窃听了8

总结

此攻击属于交换体系结构问题。pair层完全信任paltform层的数据,不会再次检查,从而导致攻击。近年来,DeFi安全事件频发。针对DAPP攻击日益密集的现状,slow fog安全团队建议DAPP开发者在移植其他协议的代码时,应充分了解迁移协议的架构,充分考虑迁移协议与自身项目的兼容性,并且只有经过专业的安全审计机构审计后才能上线,以防止资金损失的发生。

攻击事务引用:

https://bscscan.com/tx/0xac8a739c1f668b13d065d56a03c37a686e0aa1c9339e79fcbc5a2d0a6311e333

温馨提示:

文章标题:我骗了自己——汉堡包被窃听了

文章链接:https://www.btchangqing.cn/269845.html

更新时间:2021年05月31日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

以太坊超越比特币是必然的

2021-5-31 9:45:37

区块链行情

东哥论币:2021年5月30日、晚间比特币行情分析与操作策略

2021-5-31 10:24:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索