比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

智能合約安全審計入門篇 —— 移花接木_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

Bybit將于5月8日開始強制用戶進行KYC:金色財經報道,加密貨幣交易平臺 Bybit 將于北京時間 2023 年 5 月 8 日 11:00 開始強制用戶進行 KYC,未在截止日期前進行 KYC 的用戶將無法進行存款以及建立新的頭寸,但取款和平倉等操作不受影響。[2023/4/24 14:24:21]

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

Binance已向執法部門對Bitzlato的調查提供大量協助:1月24日消息,Binance 發言人通過電子郵件稱已向國際執法部門提供大量協助,以支持他們對 Bitzlato 的調查,并且補充說該公司致力于與執法部門合作,但拒絕透露其與 Bitzlato 交易的細節或與此類機構合作的性質。美國金融犯罪執法網絡(FinCEN)已宣布從 2 月 1 日起,美國和其他金融機構將禁止向 Bitzlato 轉移資金。[2023/1/24 11:28:46]

functionwithrow()publicOnlyOwner{(boolsuccess,)=owner

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

安全團隊:Transit Swap遭黑客攻擊,損失約2000萬美元:金色財經報道,據CertiK監測,跨鏈DEX聚合器Transit Swap遭受攻擊,導致用戶的資金從錢包中被取出。

到目前為止,損失估計約為2000萬美元(約49815枚BNB和約5182枚ETH)。該項目目前已暫停運營。[2022/10/2 18:37:14]

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

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

Pudgy Penguins顧問委員會新增9名高管,計劃推出實物商品:金色財經消息,NFT項目Pudgy Penguins顧問委員會已經宣布新增9人加入,其中包括:Nansen首席執行官Alex Svanevik、Saks Fifth首席運營官Avenue RJ Cilley、Hasbro授權負責人Jess Richardson、以及來自Meta合作伙伴團隊的Jordan Sterling。另據Pudgy Penguins首席執行官Luca Netz透露,為了擴大品牌影響力,該項目正計劃推出實體商品,包括Pudgy Toys毛絨玩具和兒童讀物等。(Decrypt)[2022/8/23 12:42:32]

騙局分析

可以看到,上述代碼中存在三個合約,我們先結合前置知識中的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:MAKEMakerONEMONmakerdao怎么讀Whale Maker Fundone幣價格今日行情Blizzard money

比特幣最新價格
對話:DeFi 新敘事的兩類方向_EFI

近日,7UpDAO邀請嘉賓Jimmy,iZUMiFinanceCo-Founder開展主題為《回顧2022,展望2023》的內容分享.

1900/1/1 0:00:00
區塊鏈支付領域的支付寶—pay.cool_Biswap

Pay.cool支付上的原理合伙人計劃已經上線了,但是仍然有很多疑惑原力合伙人計劃到底是什么,今天我們先解釋一下什么是原力合伙人計劃,再就幾點疑問進行解答.

1900/1/1 0:00:00
多維度數據解析Arbitrum DEX競爭:誰將成為最終贏家?_SWAP

自Arbitrum開始火熱以來,每周都有新的DEX協議在Arbitrum上推出,但排名前4位的DEX表現如何.

1900/1/1 0:00:00
回首2022,加密市場將何去何從_以太坊

2022年是最混亂、最動蕩、金融最殘酷的年份之一,不僅對數字資產行業,對更廣泛的金融市場也是如此.

1900/1/1 0:00:00
范式轉移:Web3超級應用時代來臨?_區塊鏈

構建超級應用:胖應用與胖協議馬斯克發推稱收購Twitter是為了加快創建超級應用胖協議概念由JoelMonegro于2016年提出.

1900/1/1 0:00:00
「POWER峰會速遞」Alchemy Pay社區負責人Vincent Cheng:Web3必經之路——法幣支付賽道_VAS

1月10日,由MarsBit主辦,香港創新產業園區數碼港、G-Rocket高諾國際加速器、element協辦的「POW’ER香港Web3創新者峰會」在港舉辦.

1900/1/1 0:00:00
ads