热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获利逾170万美元!链上天眼复盘元宇宙项目Paraluni黑客攻击全过程

今日8时04分(HKT),BSC链上的元宇宙金融项目Para

今日8时04分(HKT),BSC链上的元宇宙金融项目Paraluni遭遇黑客攻击,黑客获利逾170万美元。据欧科云链链上天眼初步分析:

1、攻击者资金来自PancakeSwap的闪电贷;

2、问题出在项目方MasterCheif合约的depositByAddLiquidity方法,该方法未校验代币数组参数address[2] memory _tokens是否和pid参数指向的LP相吻合,在涉及到LP数额变化时,也未加重入锁。

目前黑客在BSC链上的地址「0x94bc」的账户余额为3000.01 BNB(约112.58万美元),另有235.45 ETH(约60.86万美元)通过cBridge跨链到了ETH网络「0x94bc」。

图片来源:OKLink

通过跨链桥转移至ETH网络的235.45 ETH中的230 ETH(约59.45万美元)分5笔流入混币协议Tornado Cash,占整体获利资金的1/3。

图片来源:OKLink

当前黑客地址「0x94bc」账户余额具体分布如下:

图片来源:OKLink

图片来源:OKLink

攻击细节分析

链上天眼分析,以「0x70f3」攻击交易为例:

图片来源:OKLink

1、攻击者「0x94bc」提前构造了攻击合约A「0x4770」,一个更改了transferFrom方法的ERC20合约UBT「0xca2c」,和另一个代币合约UGT,随后攻击者调用攻击合约A的depositLp方法开始发动攻击;

2、利用PancakeSwap的闪电贷,贷出约15.5万的USDT和BUSD;

3、调用ParaRouter合约的addLiquidity添加15.5万BUSD_USDT流动性,获得15.5万LP_BUSD_USDT,并转移到UBT合约上;

4、调用MasterCheif合约的depositByAddLiquidity方法,添加1个UBT和1个UGT的流动性,指定pid为18(代表LP_BUSD_USDT);

depositByAddLiquidity调用内部函数depositByAddLiquidityInternal,该方法未对LP和token数组做校验。

5、depositByAddLiquidityInternal调用addLiquidityInternal内部方法,语句paraRouter.addLiquidity触发了UBT的transferFrom方法,UBT合约的transferFrom方法疑似为非标准ERC20代码,再次调用了MasterCheif合约的depositByAddLiquidity。

我们注意到,addLiquidityInternal方法中,先记录old LP balance,再调用addLiquidity,然后记录new LP balance,最后用new-old得到deposit的实际数量,而由于触发了UBT的transferFrom,导致重入了一次addLiquidityInternal,old LP balance未能反应最新的deposit数量,因此这一步造成了UBT合约拥有15.5万LP的deposit份额,而攻击合约A也拥有了15.5万LP的deposit份额;

6、UBT和攻击合约A分别抽取MasterCheif中的LP到攻击合约A中;

7、Remove Liquidity后,攻击合约A中有约31万USDT和31万BUSD;

8、归还闪电贷后,攻击者获利约15.5万USDT和15.5万BUSD。

案件总结

重入攻击是一种由于solidity智能合约的特性,再加上智能合约编写不当导致的漏洞。

问题出在项目方MasterCheif合约的depositByAddLiquidity方法,该方法未校验代币数组参数address[2] memory _tokens是否和pid参数指向的LP相吻合,在涉及到LP数额变化时,也未加重入锁

该事件提醒我们,在涉及到金额变动的合约方法中,一定要关注重入漏洞,尽量使用重入锁modifier。

目前,链上天眼团队已对相关地址进行了监控,并将进一步跟进事件进展。

更多链上数据查询

尽在www.oklink.com

/

/

/

点击阅读原文,走进链上天眼



推荐阅读
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup
    【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
author-avatar
认识你不笑嘻嘻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有