加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > 屎幣 > Info

智能合約安全審計入門篇 —— 移花接木_MAKE:ONE

Author:

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

By:小白

背景概述

上期我們了解了利用tx

functionmakeMoney(addressrecipient)publicpayable{require(msg

}contractVault{addressprivatemaker;addressprivateowner;uint256transferGasLimit;constructor()payable{owner=msg

modifierOnlyMaker(){require(msg

modifierOnlyOwner(){require(msg

加密貨幣交易量已從194億美元下降142億美元:金色財經報道,The Block Research數據顯示,現貨比特幣交易所交易基金推動的反彈已停止轉化為加密貨幣交易量的增加。據The Block數據,每日加密貨幣交易量的7天移動平均值已從6月27日的近期高點194億美元下降至7月8日的142億美元。周五這一數字略高于150億美元。

與此同時,比特幣的價格在同一時期相對持平。現貨交易所加密貨幣交易活動的低迷可能表明活動已轉移到衍生品或場外交易中。自貝萊德于6月15日提交現貨比特幣ETF申請以來,比特幣價格已上漲超過18%。CME的比特幣期貨市場未平倉合約已達到27億美元。[2023/7/10 10:12:37]

functionsetMacker(address_maker)publicOnlyOwner{maker=_maker;}functiontransfer(addressrecipient,uint256amount)externalOnlyMaker{require(amount<=address(this)

Voyager無擔保債權人委員會要求SBF在2月23日遠程出庭作證:2月19日消息,Voyager無擔保債權人的代表已要求FTX前首席執行官Sam Bankman-Fried(SBF)以及FTX和Alameda Research一些高管提供文件,并要求SBF在下周遠程出庭作證。

根據2月18日紐約南區美國破產法院的一份文件,SBF收到“在破產案中出庭作證的傳票”。Voyager無擔保債權人官方委員會向其發出傳票并表示,SBF必須在2月23日出席遠程作證。SBF需要在2月20日之前提供所有要求的文件和通信。

根據2月6日的法庭文件,Voyager律師向SBF、Alameda首席執行官Caroline Ellison、FTX聯合創始人Gary Wang和FTX產品負責人Ramnic Arora發出傳票,要求他們在2月17日之前提供相關信息。(Cointelegraph)[2023/2/19 12:16:17]

functionwithrow()publicOnlyOwner{(boolsuccess,)=owner

持有超過100枚以上ETH的地址數量創20個月新高:金色財經報道,據Glssnode數據顯示,持有超過100枚以上ETH的地址數量剛剛達到47,131個,創20個月新高。[2022/11/20 22:08:36]

receive()externalpayable{}fallback()externalpayable{}}//ThiscodeishiddeninaseparatefilecontractHack{eventtaunt(stringmessage);addressprivateevil;constructor(address_evil){evil=_evil;}modifierOnlyEvil(){require(msg

中東加密貨幣交易所Rain Financial再次裁員:9月1日消息,中東加密貨幣交易所Rain Financial進行了一輪裁員,不過未披露具體裁員人數。Rain Financial表示,“我們不得不調整未來計劃,來確保我們能夠度過這次低迷。”(彭博社)

此前消息,6月份,Rain Financial因市場疲軟已裁員數十名員工。[2022/9/1 13:02:32]

functiontransfer()publicpayable{emittaunt("Haha,youretherismine!");}functionwithrow()publicOnlyEvil{(boolsuccess,)=evil

receive()externalpayable{}fallback()externalpayable{}}

騙局分析

可以看到,上述代碼中存在三個合約,我們先結合前置知識中的A,B,C三個角色來區分三個合約分別代表什么角色:

MoneyMaker合約代表A合約;

Vault合約代表B合約;

Hack合約代表C合約。

所以用戶以為的調用路徑為:

MoneyMaker->Vault。

而實際的調用路徑為:

MoneyMaker->Hack。

下面我們來看看攻擊者如何完成騙局的:

1.?Evil部署Vault(B)合約并在合約中留存100ETH資金,在鏈上將Vault(B)合約開源;

2.?Evil部署Hack(C)惡意合約;

3.?Evil放出消息說他將會部署一個開源的賺錢MoneyMaker(A)合約,部署時會將Vault(B)合約地址傳入且會調用Vault.setMacker()將maker角色設置為MoneyMaker合約地址,任何人調用MoneyMaker.makeMoney()向合約中打入不少于一個以太都會得到雙倍以太的回報;

4.?Bob收到消息,了解到MoneyMaker合約的存在,他看了MoneyMaker(A)和Vault(B)合約的代碼并檢查了Vault(B)合約中的余額發現邏輯確實如Evil說的那樣,他在沒有檢查MoneyMaker(A)部署交易的情況下就相信了Evil;

5.?Bob調用MoneyMaker.makeMoney()向合約中打入自己全部身家20ETH,在他滿懷期待等著收到Vault(B)打來的40ETH時等來的卻是一句"Haha,youretherismine!"。

咋回事呢?其實這個騙局非常簡單但是很常見。Evil在部署MoneyMaker合約時傳入的并不是Vault合約的地址,而是傳入了Hack合約的地址。所以當Bob調用MoneyMaker.makeMoney()時并不會像他想像中的那樣MoneyMaker.makeMoney()去調用Vault.transfer()回打給他雙倍的以太,而是調用了Hack.transfer()拋出了一個事件:"Haha,youretherismine!"。最后Evil調用Vault.withrow()將Vault合約中的100ETH轉出,并通過Hack.withrow()將Bob轉入的20ETH轉出。

預防建議

以太坊黑暗森林中你能相信的只有自己,不要相信任何人精彩的話術,交易記錄不會造假,只有自己驗證了對應的那筆交易后才能相信對方說的話是對的。

注:本文參考自《SoliditybyExample》https://solidity-by-example.org/hacks/randomness

Tags:MAKEMakerMONONEDAO MakerMoon Maker ProtocolMonkey Tokencoinone交易所

屎幣
NFTFi的核心機制和賽道分析_NFT:FTF

摘要 隨著2020年DefiSummer和2021年NFTSummer的狂歡過去,最近越來越多的人將目光開始投射在NFTFi上.

1900/1/1 0:00:00
Coinbase CEO:加密行業需要怎樣的中心化監管_加密貨幣:VEN

Tl;dr:監管治理和政策社區的人問我最常見的問題之一是監管清晰度究竟是什么樣子。在這篇博客中,我概述了一個現實的藍圖,以確保我們對中心化參與者有清晰的監管,以及跨交易所的公平競爭環境,同時保留.

1900/1/1 0:00:00
Web3 將如何影響社交網絡?| 騰訊研究院研討實錄(上)_WEB:ruff幣區塊鏈最新消息

對話者 SujiYan.MaskNetworkFoundertim.bitFounderJsson.《Web3社交報告》作者 主持人 徐思彥騰訊研究院高級研究員本文由研討整理而成,有刪減.

1900/1/1 0:00:00
對話 a16z 合伙人 Chris Dixon:投資原則、加密市場現狀和展望_CHR:kmwisdom

到目前為止,位于硅谷的風險投資公司a16z已經籌集了超過76億美元的資金,用于投資加密貨幣和Web3.

1900/1/1 0:00:00
2023年,以太坊虛擬機(EVM)將走向何方?_MOS:DAPP

隨著?Uniswap?等頭部應用探索?Layer2??,dYdX在?Cosmos?上構建,明年?Cosmos?上應用鏈的崛起……這些都為?EVM的爆發提供了基礎.

1900/1/1 0:00:00
輕量化隱私公鏈Mina的技術原理以及生態發展_MIN:lunar幣歸零

過去幾年來,區塊鏈的可擴展性基本是以犧牲去中心化和安全性來達成的,輕量化公鏈MinaProtocol有些不太一樣.

1900/1/1 0:00:00
ads