币为何入钱包 成都链安: VETH智能合约攻击分析

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册
2020年6月30日下午5:46,Beosin-OSINT威胁情报系统发现VETH智能合约(0x75572098dc462F976127f59F8c97dFa291f81d8b)遭受攻击,被盗919299个VETH。成都链安·安全实验室第一时间对本次事件进行跟踪分析。

根据链上交易显示,攻击者利用自建合约(0x47ed415006c6f8052fff05fe983f31d6d24b8fdb)通过Uniswap将0.9ETH兑换为138VETH,之后对VETH智能合约(0x75572098dc462F976127f59F8c97dFa291f81d8b)发起攻击,在攻击完成后自建合约进行自我销毁。本次攻击成本仅0.9ETH,约合200美元。交易详情如下:(hash:0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224)

详情如下:△图1在盗币成功之后,攻击者将盗取的VETH通过Uniswap换成了16ETH。如下图所示:△图2

具体攻击流程如下:1. 攻击者创建攻击合约,通过Uniswap将0.9ETH兑换成138VETH;2. 调用VETH合约changeExcluded函数,支付128VETH手续费,使mapAddress_Excluded[excluded]的值为true;3. 调用transferFrom函数,因mapAddress_Excluded[excluded]的值为true,可以直接进行转账;4. 攻击完成后,攻击者通过Uniswap将盗取的VETH兑换成16ETH。

漏洞原理分析:此漏洞产生的主要原因是changeExcluded函数修饰符为external,使得任何人都可以调用该函数来绕过transferFrom函数内部的授权转账额度检查,将合约的VETH代币盗走。

首先分析transferFrom函数,在函数内部先进行!mapAddress_Excluded[msg.sender]的判断,按照正常逻辑,该结果为true后,将进行授权转账额度的检查。但是转账函数_transfer的调用放在if语句体外,这就导致攻击者可以通过将mapAddress_Excluded[msg.sender]的值设置为true而绕过授权转账额度的检查,直接进行VETH代币转移。transferFrom函数源码如下图所示:△图3

通过分析修改mapAddress_Excluded[msg.sender]值的代码发现,在changeExcluded函数内实现了对其值的修改,且该函数修饰符为external,可供外部调用。changeExcluded函数源码如下图所示:△图4

在未对该值进行设置时,mapAddress_Excluded[excluded]的初始值为false,最后if判断结果为true,进入if语句体,调用_transfer进行转账,要求支付转账金额为:mapEra_Emission[1]/16(跟进mapEra_Emission[1]的来源emission,得知其值为2048*1018)即128VETH,然后mapAddress_Excluded[excluded]的值被设置为true。emission的值如下如所示:△图5

总结:此次VETH被盗事件,漏洞出自VETH合约而非Uniswap,VETH合约代码的函数访问修饰符的错误使用导致任何人都能绕过授权转账额度的检查,以极低的成本发起攻击。成都链安·安全实验室在此提醒:各大智能合约运营商,在合约正式部署上线前应做好充分的代码审计工作,即使是一些简单的代码错误也会财产损失。

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/zx/46605.html

上一篇 2023年08月07日
下一篇 2023年08月07日

相关推荐

  • 使用Web3.js调用币安Web3链合约函数实战指南

    使用Web3.js调用币安Web3链合约函数实战指南 在去中心化应用(DApp)开发中,通过Web3.js与区块链智能合约交互是核心环节,本文将以币安智能链(BSC,现称BNB Smart Chain)为例,详细介绍如何使用Web3.js调用合约函数的完整流程。 前置准备与环境配置 首先需安装Web3.js库:

    2026-06-23 08:30:03
    34 0
  • 契约函数怎么求,x的三次方图像是什么

    一、怎么用效用函数 推导需求函数还有用生产函数推成本函数微观经济学理论消费者理论:马歇尔需求函数求法,性质,Roy恒等式,间接效用函数;希克斯需求函数,性质,shepard引理,支出函数。注意常用的L型,完全替代型,C--D效用,拟线性效用。注意间接效用函数与支出函数互为

    2026-04-30 06:30:01
    59 0
  • 比特币中块哈希存在哪里,比特币的哈希函数是什么

    一、比特币哈希字符要求前几位为零是的。运算是将任意长度的0,变成固定长度的0。所以比特币哈希字符要求前几位为零的,任何信息,不管多长算法“SHA1”,算出的结果是160位,也就是由160个0或1组成;比特币挖矿用到的是“SHA256”,算出的结果是256位。至于具体怎么算的,我

    2025-02-07 02:00:01
    173 0
  • 比特币的交易哈希是什么,比特币的哈希函数是什么

    一、怎么最快看到区块链哈希值(区块链中的哈希到底是做什么)钱包提币到交易所,哈希值有吗?如何查?比特币的交易去向是可以查询的,比特币交易都会记录在比特币区块链上,可以查到比特币的流动性,从哪一个钱包转移到了哪一个钱包。但是,你只知道转移到哪一个钱包里了,你并

    2025-01-06 14:30:01
    529 0
  • 什么是Stacks Stacks与STAR原则:进步工做效率的法门

    本文目次导读:StacksSTAR原则StacksStacks是一种数据构造,它是一种线性表,具有后进先出(Last In First Out,LIFO)的特征,那意味着最初一个进入栈的元素将会是第一个被拜候或移除的元素,在计算机科学和编程

    2024-04-24 22:30:16
    198 0
  • 「金色财经」Phalcon:合约0x8c2d4e遭受攻击,损失约36.5万美元

    「金色财经」根据金融报道,Phalcon在X平台上发布消息称,由于缺乏访问控制,合约0x8c2d4e(可能是MEV机器人)受到攻击,损失约36.5万美元攻击者首先调用函数0xac3994ec将自己指定为特权地址(可能是债务所有者的角色)随后

    2023-11-13 11:30:06
    278 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载