Exactly Protocol 攻击事件原理分析

news2024/12/23 8:02:42

Exactly Protocol 攻击事件原理分析

8 月 18 日,Exactly protocol 遭遇黑客攻击,攻击者已获利约 1204 万美元。
安全公司Safful对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

一、 事件分析

攻击者地址:
0x3747dbbcb5c07786a4c59883e473a2e38f571af9
0x417179df13ba3ed138b0a58eaa0c3813430a20e0
0xe4f34a72d7c18b6f666d6ca53fbc3790bc9da042
攻击合约:
0x6dd61c69415c8ecab3fefd80d079435ead1a5b4d
被攻击合约:
0x675d410dcf6f343219aae8d1dde0bfab46f52106
攻击交易:
0x3d6367de5c191204b44b8a5cf975f257472087a9aadc59b5d744ffdef33a520e
0x1526acfb7062090bd5fed1b3821d1691c87f6c4fb294f56b5b921f0edf0cfad6
0xe8999fb57684856d637504f1f0082b69a3f7b34dd4e7597bea376c9466813585

攻击流程:
(1)攻击者(0x417179df)先通过攻击合约(0x6dd61c69)创建了多个恶意市场代币合约和多个 uniswapPool 合约。

image.png
image.png

(2)随后调用被攻击合约(0x675d410d)的 leverage 函数并传入一个恶意市场代币地址。

image.png

(3)在 leverage 函数中通过 deposit 函数到 pool 合约中添加 USDC 和恶意市场代币的流动性并重入到被攻击合约(0x675d410d)的 crossDeleverage 函数

image.png

(4)在 crossDeleverage 函数中被攻击合约(0x675d410d)会使用 USDC 到 pool 合约中兑换恶意市场代币。

image.png

(5)函数调用完成后,攻击合约(0x6dd61c69)移除 pool 中的流动性,随后提出兑换而来的 USDC 代币获利。

image.png

(6) 多次循环上面的操作,每次攻击都会更换被攻击用户地址和恶意市场代币地址。

image.png

(7) 然后将获得的 USDC 发送给攻击者(0xe4f34a72)。

image.png

(8)多次执行同样的操作获利

image.png

二、漏洞分析

本次攻击利用了 DebtManager(0x675d410d)合约中的漏洞,其中的 leverage 函数未校验传入 market 参数是否为可信的市场合约,导致在 permit 函数修饰器中可将状态变量_msgSender 修改为攻击者任意的传参地址。

image.png
image.png

最后在与 pool 进行兑换时会使用用户的 exaUSDC 余额来抵消付给 pool 合约的 USDC 数量。

image.png

三、 安全建议

针对本次攻击事件,我们在开发过程中应遵循以下注意事项:
(1)在涉及到有关外部地址传参和调用的情况下,应严格校验传参地址是否为可信地址。
(2)项目上线前,需要向第三方专业的审计团队进行智能合约审计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业小件固定资产怎么管理,有什么有效方式?

小件固定资产是指价值较低、使用寿命较短的固定资产,一般用于生产、制造、维修等领域。一些常见的行业中广泛使用小件固定资产:  制造业:小件固定资产在制造业中应用广泛,如机器设备、工具、测量仪器等。  建筑业:…

Spring Boot业务系统如何实现海量数据高效实时搜索

1.概述 我们都知道随着业务系统的发展和使用,数据库存储的业务数据量会越来越大,逐渐成为了业务系统的瓶颈。在阿里巴巴开发手册中也建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达…

科创板50etf和科创50etf的区别不同点?一定要看!

很多在交易期权的时候会对科创50ETF期权和科创板50ETF期权标的物选择有疑问,两者与有何区别呢,选择哪个比较合适,别着急,下文为大家介绍科创板50etf和科创50etf的区别不同点?一定要看!本文来自:…

谁做的方案,竟把财务数据分析套路都摸透了

来不及计算组合多变又复杂量大的财务数据分析指标?不知道该用哪些财务数据分析方法技巧?不知道怎么把信息量巨大的财务数据分析报表做得易读易理解?别担心,奥威BI数据可视化工具都把套路摸透了,并提出一套系统、标准化…

kafka+Kraft模式集群+安全认证

Kraft模式安全认证 前章内容聊到了Kafka的Kraft集群的配置及使用。本篇再来说说kafka的安全认证方面的配置,。 Kafka提供了多种方式来进行安全认证,包括身份认证、授权和加密传输。一些常用的Kafka安全认证方式: SSL/TLS:使用S…

go的数据结构-变量的大小是0字节

查看变量大小 unsafe.Sizeof(int(0)) 变量: 指针: int和指针大小跟随系统字长,空结构体没有任何成员,是有地址没有长度,所有空结构体都指向同一个结构体地址(不被包含在其他结构体中)zerobas…

OpenHarmony Meetup 2023 广州站圆满举办,城市巡回全面启航

“OpenHarmony正当时——技术开源”OpenHarmony Meetup 2023城市巡回活动,旨在通过meetup线下交流形式,解读OpenHarmony作为下一代智能终端操作系统的新版本及成果转化,提升开发者对OpenHarmony的关注度,普及OpenHarmony开发技能&…

高效利用隧道代理实现无阻塞数据采集

在当今信息时代,大量的有价值数据分散于各个网站和平台。然而,许多网站对爬虫程序进行限制或封禁,使得传统方式下的数据采集变得困难重重。本文将向您介绍如何通过使用隧道代理来解决这一问题,并帮助您成为一名高效、顺畅的数据采…

桌面端后台项目笔记

套用模板 vue-pure-admin 所用主要框架笔记 1. electron app const { app } require(electron) app.on(事件名, () > {} // 回调函数)常用事件 will-finish-launching 当应用程序完成基础的启动的时候触发ready:electron完成初始化时触发window-all-close…

A10的pll reconfig

一、前言 我之前写过《quartus动态配置pll reconfig》,讲的是A5的pll reconfig。 这次调A10,结果发现寄存器配置、地址、操作流程都变了,不能无脑移植。 二、寄存器配置 1,A5的寄存器配置如下: 其中基地址如下&…

皮卡丘靶场搭建遇到的问题大全

该博客记录我在安装皮卡丘靶场中遇到的一些问题。 1、 phpstudy_pro启动Mysql失败 自己电脑开启了mysql服务,使用winr,services.msc,找到自己的mysql服务,关闭。再次尝试使用phpstudy_pro启动mysql,成功解决。 2、皮…

基于Matlab实现生活中的图像信号分类(附上源码+数据集)

在我们的日常生活中,我们经常会遇到各种各样的图像信号,例如照片、视频、图标等等。对这些图像信号进行分类和识别对于我们来说是非常有用的。在本文中,我将介绍如何使用Matlab来实现生活中的图像信号分类。 文章目录 介绍源码数据集下载 介…

ElasticSearch学习5-- 使用RestClient查询文档

1、查询基本步骤 1、创建SearchRequest对象 2、准备Request.source(),也就是DSL。 QueryBuilders来构建查询条件 传入Request.source() 的 query() 方法 3、发送请求,得到结果 4、解析结果(参考JSON结果,从外到内…

美团 Flink 资源调度优化实践

摘要:本文整理自美团数据平台计算引擎组工程师冯斐,在 Flink Forward Asia 2022 生产实践专场的分享。本篇内容主要分为四个部分: 相关背景和问题解决思路分析资源调度优化实践后续规划 点击查看原文视频 & 演讲PPT 一、相关背景和问题 在…

OpenSSL 远程代码执行漏洞 CVE-2022-1292 升级方案及步骤

升级方案 升级步骤 1.查看版本号 命令:openssl version 2.下载安全版本openssl: openssl官网 下载 openssl-1.1.1o.tar.gz 3.编译安装 在/usr/lib/下创建目录openssl 输入命令: mkdir openssl 将下载的包openssl-1.1.1o.tar.gz放到这个目录,并解压 输入命令: tar -xv…

SAP 之IMG/SPRO解释

一、IMG是什么 二、使用步骤 1.举例 总结 一、IMG是什么 IMG-IMplementation Guide,是实施指引的简称,事务代码是 SPRO-SAP Project Reference Object。IMG是SAP中用于定制系统以满足业务要求的工具, 二、使用步骤 1.举例 例如&#xff0c…

保姆级教程之SABO-VMD-SVM的西储大学轴承诊断

之前写过一篇优化核极限学习机的轴承诊断,今天再出一期基于SVM的轴承诊断。 依旧是包含了从数据处理,到减法优化器SABO算法优化VMD参数,再到支持向量机的故障诊断,实现故障诊断的全流程,其他类型的故障诊断均可参考此流…

GrapeCity Documents V6.0 Update 2发布,新增支持SpreadJS的.sjs文件格式

近日,GrapeCity Documents 正式迎来其V6.2 的发布更新,能够支持 SpreadJS 中 .sjs 类型的文件。这一重大更新将为用户带来更多地惊喜。 .sjs文件有两个关键优势:空间更小且导入导出速度更快。通过采用 .sjs格式,GcExcel实现了更高…

云计算环境中高性能计算的挑战与对策

文章目录 云计算中的高性能计算挑战1. 资源竞争:2. 网络延迟:3. 数据传输效率:4. 虚拟化开销:5. 节点异构性: 高性能计算在云计算环境中的对策1. 定制化虚拟机镜像:2. 弹性资源调整:3. 高效数据…

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值 【1】问题描述【2】Oracle内置函数解决【3】mysql的内置函数INSTR()【4】mysql的内置函数FIND_IN_SET() 【1】问题描述 数据库中【库信息db】和【集群信息cluster】是一对多的关系&…