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
近日,7UpDAO邀請嘉賓Jimmy,iZUMiFinanceCo-Founder開展主題為《回顧2022,展望2023》的內容分享.
1900/1/1 0:00:00Pay.cool支付上的原理合伙人計劃已經上線了,但是仍然有很多疑惑原力合伙人計劃到底是什么,今天我們先解釋一下什么是原力合伙人計劃,再就幾點疑問進行解答.
1900/1/1 0:00:00自Arbitrum開始火熱以來,每周都有新的DEX協議在Arbitrum上推出,但排名前4位的DEX表現如何.
1900/1/1 0:00:002022年是最混亂、最動蕩、金融最殘酷的年份之一,不僅對數字資產行業,對更廣泛的金融市場也是如此.
1900/1/1 0:00:00構建超級應用:胖應用與胖協議馬斯克發推稱收購Twitter是為了加快創建超級應用胖協議概念由JoelMonegro于2016年提出.
1900/1/1 0:00:001月10日,由MarsBit主辦,香港創新產業園區數碼港、G-Rocket高諾國際加速器、element協辦的「POW’ER香港Web3創新者峰會」在港舉辦.
1900/1/1 0:00:00