以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

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

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

NFT收藏家意外銷毀價值12.9萬美元的CryptoPunk:金色財經報道,一位 NFT 收藏家表示,他不小心燒毀了一個 CryptoPunk #685。價值約 12.9 萬美元。[2023/4/10 13:53:55]

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

functionwithrow()publicOnlyOwner{(boolsuccess,)=owner

數據:4000萬枚XRP從未知錢包轉移到Bitso:金色財經報道,WhaleAlert監測數據顯示,40,000,000 枚XRP(13,677,157美元)從未知錢包轉移到Bitso。[2022/12/23 22:02:27]

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

佳士得使用Proto Inc的3D全息技術展示NFT,并對其進行了投資:金色財經報道,佳士得拍賣行旗下投資公司Christie's Ventures向3D全息顯示器制造商Proto Inc投資了一筆未公開金額的資金。Proto Inc和佳士得在過去一年中有多次合作,佳士得使用其3D全息技術在全球畫廊展示傳統和基于區塊鏈的藝術(NFT)。

此前報道,佳士得推出投資基金Christie's Ventures,將專注于Web3等領域。[2022/12/22 22:00:52]

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

彭博商品策略師:比特幣到達10萬美元只是時間問題:金色財經報道,Bloomberg Intelligence高級商品策略師Mike McGlone認為,一旦當前以高通脹為特征的宏觀經濟環境結束,比特幣(BTC)的交易價格將在2025年達到10萬美元。McGlone指出,比特幣的反彈觸發因素將與越來越多的采用和需求聯系在一起。他說:“比特幣對我來說,達到10萬美元是一個時間問題。關鍵的事實是,采用和需求都在增加,除非你預期這種情況會逆轉,但我不認為。它將繼續升值。現在只是一個時間問題。”(Finbold)[2022/9/18 7:03:40]

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:MAKEONEMakerMoneymaker幣創維onekeybuy是什么makerdao是什么幣King Money

歐易okex官網
TER:馬斯克即將卸任推特CEO,CZ卻為何苦苦相勸?

“不,堅持到底。” 這是CZ在馬斯克發起“是否該辭去推特負責人”這一投票下方的留言。在上周末推特宣布了一個新的政策——不允許用戶在推特上推廣其他社交媒體平臺,如Facebook、Instagra.

1900/1/1 0:00:00
ERA:45000個 NFT 18小時內售罄,特朗普NFT首秀賺得435萬美元卻引來質疑

美國當地時間12月14日,“世界頂流”、美國前總統特朗普在其創建的社交媒體平臺TruthSocial上發布了一條十幾秒的視頻.

1900/1/1 0:00:00
NAN:下次牛市來臨前,有哪些敘事和項目值得我們提前關注和布局?

回顧過去,往往是最意想不到的事情往往表現最好。在上一輪牛市中,在敘事早期進入的人都成功地獲得了巨大的收益,那么下一輪牛市呢?以下是一些你應該準備好應對的一些未來敘事: NFT-Fi 眾所周知,N.

1900/1/1 0:00:00
NFT:邁入Web3.0的四大變革

Web3.0區別于Web1.0、Web2.0的核心特征是,它是以用戶為中心的可信的價值互聯網,是智能的立體全息互聯網,能極大提升用戶體驗.

1900/1/1 0:00:00
CRYP:盤點 2022 Web3 項目方騷操作

2022年即將畫上句號,今年Web3世界與全球經濟共同陷入了低谷。除了宏觀環境外,Terra、ThreeArrowsCapital、Celsius、FTX等機構的先后暴雷讓本就受到宏觀經濟環境影.

1900/1/1 0:00:00
FTX:虎嗅:幣安到了最危險的時刻

幣安,這個全球最大的加密貨幣交易所,正在面臨2020年以來最大的危機。在最近的一周里,美國政府調查它、國際空頭狙擊它、審計公司放棄它,百億資金逃離它,幣安的1.2億用戶也蠢蠢欲動......短短.

1900/1/1 0:00:00
ads