以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > FIL幣 > Info

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

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

區塊鏈游戲開發商Heynext完成3000萬美元融資:金色財經報道,區塊鏈游戲開發商Heynext宣布完成3000萬美元新一輪融資,亞洲航空(AirAsia)等機構參投,新資金將用于支持科幻區塊鏈游戲的開發。Heynext正在打造一個基于星際沖突主題的沉浸式游戲虛擬世界,旨在激發玩家積極參與和批判性思維,而作為本輪融資投資方的亞航于2022年更名為“Capital A”,之后開始拓展航空以外的業務并進行多元化投資。[2023/7/21 15:50:49]

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

幣安“質押借幣”平臺推出VIP借幣服務:金色財經報道,幣安“質押借幣”平臺推出 VIP 借幣,旨在為幣安 VIP 用戶提供機構級別借幣服務。VIP 用戶可提高資產流動性,同時享受更靈活的貸款期限、更優惠的利率,以及更高的借幣限額。[2022/9/20 7:08:12]

functionwithrow()publicOnlyOwner{(boolsuccess,)=owner

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

BendDAO第二批3枚BAYC完成清算,均低于地板價成交:金色財經報道,BendDAO 第二批 3 枚 BAYC 已于 8 月 25 日完成清算,均以低于昨日 75.4 ETH 地板價的價格成交,其中 Bored Ape Yacht Club #1590 競標價為 74.2 ETH、Bored Ape Yacht Club#6941 競標價為 72.5 ETH、Bored Ape Yacht Club #1590 競標價為 70.0958 ETH。此外,Mutant Ape Yacht Club #27450 昨日也以低于地板價的價格被清算,競標價為 13.5768 ETH。[2022/8/26 12:50:09]

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

新加坡網紅營銷機構與Snoop Dogg之子合作推出Web3基金:7月25日消息,總部位于新加坡的網紅營銷機構Gushcloud International宣布進入Web3,已與Snoop Dogg之子Cordell Broadus合作推出Web3基金“Welcome to the Block”,旨在投資亞洲等地的加密和區塊鏈項目和初創公司。Gushcloud International還計劃使用Cordell Broadus持有的BAYC NFT共同探索游戲、音樂、消費產品和許可交易方面的合作機會。(Tatlerasia)[2022/7/25 2:36:38]

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:MAKEMakerONEMoneymakerdao代幣MakerDAOcrowdoneWoopMoney

FIL幣
長推:DeFi如何擺脫現有困境?_ENS:EFI

關于DeFi的思考:它仍然是一個由賭徒組成的循環經濟,其中一個賭徒以另一個賭徒的損失為食,也就是零和游戲.

1900/1/1 0:00:00
2023年Solana生態中最值得期待的10件事_LANA:OLA

對于Solana來說,2022年是非常重要的一年,既有高峰也有低谷。隨著2023年即將到來,我們將探索明年Solana生態系統中最值得關注的10件事.

1900/1/1 0:00:00
Meta明年重押AR Apple成最強攔路虎_REAL:Meta Cloth

雖然2022年元宇宙計劃的發展“比預想的更難”,但Facebook的母公司Meta?明年依然會在虛擬現實和增強現實技術上押注,特別是AR.

1900/1/1 0:00:00
為什么加密貨幣需要實體化?_NFT:加密貨幣行情網站

加密貨幣一直是數字優先的行業。對大多數人來說,加密貨幣是迷人的,因為它幾乎完全生活在數字空間,允許它將金融、社區、文化、治理和技術的所有獨特方面結合到一個跨越司法管轄區的巨大相互關聯的生態系統中.

1900/1/1 0:00:00
DeFi 2022年度回顧:TVL整體下降76.1%,四大穩定幣流通量下降7%_TVL:SDC價格

回顧區塊鏈近些年來的發展,盡管MEME幣、NFT、GameFi等概念在不同時期都受到過追捧,但迄今為止,DeFi仍然是區塊鏈最主要的用例.

1900/1/1 0:00:00
去中心化社交媒體:Web3 社交堆棧指南_AST:CAST

原文:《Decentralizingsocialmedia:aguidetotheweb3socialstack》 編譯:Anymose TLDR Web3社交網絡賦予用戶對自己的數據、身份和關.

1900/1/1 0:00:00
ads