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

  • A+
所属分类:比特币钱包
摘要

雍和比特币

雍和比特币 作者:于丹@慢雾保安队我骗了自己——汉堡包被窃听了据慢雾区域音讯,2021年5月28日,币智能链(BSC)defi项目burgerswap遭到黑客进犯,丢失330万美元。慢雾安全小组初次参加剖析,共享成果如下:进犯细节剖析Burgerswap是uniswap AMM项目的仿制品,但它不同于uniswap体系结构。交流体系结构一般分为[托付-gt;lpPlatForm-gt;Pair】。托付层办理一切Pair信息,并担任创立lpplatform层。然后lpplatform层创立相应的pair contract。在整个架构中,渠道层作为uniswap的路由器,担任将核算出的业务数据和署理币转发给pair contract完结交流。我骗了自己——汉堡包被窃听了此事情的本源是此体系结构的问题。通过逐渐剖析进犯者的买卖行为,能够复原整个进犯进程的中心我骗了自己——汉堡包被窃听了这次突击始于pancake的闪电借款。进犯者从pancake借用很多wbnb,然后通过burgerswap传递这些wbnb;换汉堡币。在完结上述操作后,进犯者创立一个业务对,并运用自己的币代(进犯契约本身)和burger 币代通过托付层增加流动性,为后续进犯做准备。我骗了自己——汉堡包被窃听了生成币后,进犯者当即通过paltform层的swapexacttokenssfortokens函数主张交流,交流途径为[生成币由进犯者操控-gt;汉堡-gt;WBNB】我骗了自己——汉堡包被窃听了接下来,履行最要害的操作。;因为进犯者在创立业务对时运用了自己操控的署理币,因而在署理币的交流进程中,innertransferfrom函数调用了进犯者操控的署理币合约,进犯者能够在innertransferfrom函数中从头输入swapexactTokens for tokens函数。进犯者为什么要这样做?我骗了自己——汉堡包被窃听了通过对渠道层swap exacttokens for tokens函数的代码剖析,不难发现契约在调用innertransferfrom函数时,先核算用户的交流数据,然后在操作innertransferfrom函数后调用,预核算的数据代表币被转发到底层进行真实的交流。从这个函数的视点来看,即便进犯者从头输入swapexacttokens for tokens函数,底层swap函数也是独立的。乍一看,没有问题,但链条上的一个行为却引起了慢雾安保团队的留意我骗了自己——汉堡包被窃听了咱们惊奇地发现,在再入交流进程中,交流量并没有因为滑动点而削减。原因是什么?好像要害是潜在的配对契约问题。咱们进一步剖析了底层调用的pair contract,代码如下:我骗了自己——汉堡包被窃听了通过剖析pair的代码,咱们惊奇地发现,在交流进程中,合约没有依照常数积公式查看交流后的价值!!也就是说,pair契约彻底依赖于渠道层的数据进行交流,导致了这一事情的产生。因为pair层本身不校验常数积,在重入时预先核算渠道层交流数据,innertransferfrom函数完结后,pair的更新数据不反映在渠道层。因而,买卖地点再入买卖中产生的滑动点不影响下一个买卖所,形成丢失。图片如下:我骗了自己——汉堡包被窃听了总结此进犯归于交流体系结构问题。pair层彻底信赖paltform层的数据,不会再次查看,然后导致进犯。近年来,defi安全事情频发。针对DAPP进犯日益密布的现状,slow fog安全团队主张DAPP开发者在移植其他协议的代码时,应充沛了解搬迁协议的架构,充沛考虑搬迁协议与本身项目的兼容性,而且只要通过专业的安全审计组织审计后才干上线,以避免资金丢失的产生。;进犯业务引证:https://bscscan.com/tx/0xac8a739c1f668b13d065d56a03c37a686e0aa1c9339e79fcbc5a2d0a6311e333

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
头像

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:0   其中:访客  0   博主  0

    • 头像 亚希金融 9

      比特币白皮书英文原版其实并未出现 blockchain 一词,而是使用的 chain of blocks。