热门标签 | 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

/

/

/

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



推荐阅读
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文深入解析了Java 8并发编程中的`AtomicInteger`类,详细探讨了其源码实现和应用场景。`AtomicInteger`通过硬件级别的原子操作,确保了整型变量在多线程环境下的安全性和高效性,避免了传统加锁方式带来的性能开销。文章不仅剖析了`AtomicInteger`的内部机制,还结合实际案例展示了其在并发编程中的优势和使用技巧。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 通过使用七牛云存储服务,本文详细介绍了如何将本地图片高效上传至云端,并实现了内容的便捷管理。借助七牛云的 Python SDK,文章提供了从认证到文件上传的具体代码示例,包括导入必要的库、生成上传凭证以及处理文件路径等关键步骤。此外,还探讨了如何利用七牛云的 URL 安全编码功能,确保数据传输的安全性和可靠性。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • 理解和应用HTTP请求中的转发与重定向机制
    在HTTP请求处理过程中,客户端发送请求(通常简称为req),服务器进行相应处理后返回响应(通常简称为res)。理解和应用客户端的转发与重定向机制是前端开发的重要内容。这两种机制在Web开发中具有关键作用,能够有效管理和优化用户请求的处理流程。转发机制允许服务器内部将请求传递给另一个资源,而重定向则指示客户端向新的URL发起新的请求,从而实现页面跳转或资源更新。掌握这些技术有助于提升应用的性能和用户体验。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
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社区 版权所有