By:小白
背景概述
上期我们了解了利用tx
functionmakeMoney(addressrecipient)publicpayable{require(msg
}contractVault{addressprivatemaker;addressprivateowner;uint256transferGasLimit;constructor()payable{owner=msg
modifierOnlyMaker(){require(msg
modifierOnlyOwner(){require(msg
functionsetMacker(address_maker)publicOnlyOwner{maker=_maker;}functiontransfer(addressrecipient,uint256amount)externalOnlyMaker{require(amount<=address(this)
functionwithrow()publicOnlyOwner{(boolsuccess,)=owner
receive()externalpayable{}fallback()externalpayable{}}//ThiscodeishiddeninaseparatefilecontractHack{eventtaunt(stringmessage);addressprivateevil;constructor(address_evil){evil=_evil;}modifierOnlyEvil(){require(msg
functiontransfer()publicpayable{emittaunt("Haha,youretherismine!");}functionwithrow()publicOnlyEvil{(boolsuccess,)=evil
receive()externalpayable{}fallback()externalpayable{}}
数据:DEX与CEX现货交易量比率首次超过20%:5月22日消息,据The Block数据,DEX 与 CEX 现货交易量比率——跟踪去中心化交易所相对于中心化场所的交易量——创历史新高,首次超过 20%。同时,CEX 加密货币交易量处于今年的历史最低水平。[2023/5/22 15:19:13]
局分析
可以看到,上述代码中存在三个合约,我们先结合前置知识中的A,B,C三个角色来区分三个合约分别代表什么角色:
MoneyMaker合约代表A合约;
Vault合约代表B合约;
Hack合约代表C合约。
所以用户以为的调用路径为:
MoneyMaker->Vault。
而实际的调用路径为:
MoneyMaker->Hack。
下面我们来看看攻击者如何完成局的:
美众议院金融服务委员会主席邀请SBF参加12月13日的听证会:金色财经报道,美国众议院金融服务委员会主席Maxine Waters在周五的一条推文中称赞SBF关于FTX崩溃的“坦率”评论,并邀请他参加12月13日的委员会听证会。她说,“我们感谢您在讨论FTX发生的事情时坦诚相待,你愿意与公众交谈将有助于公司的客户、投资者和其他人。为此,我们欢迎您参加我们13日的听证会”。Waters委员会将于本月晚些时候就FTX崩溃举行首次听证会。
民主党主席兼共和党众议员Patrick McHenry表示,他们希望听到SBF和其他参与这场崩溃的人的讨论,包括Alameda Research前高管和竞争对手交易所币安的代表。[2022/12/3 21:19:28]
1.?Evil部署Vault(B)合约并在合约中留存100ETH资金,在链上将Vault(B)合约开源;
2.?Evil部署Hack(C)恶意合约;
3.?Evil放出消息说他将会部署一个开源的赚钱MoneyMaker(A)合约,部署时会将Vault(B)合约地址传入且会调用Vault.setMacker()将maker角色设置为MoneyMaker合约地址,任何人调用MoneyMaker.makeMoney()向合约中打入不少于一个以太都会得到双倍以太的回报;
JKL集团宣布设立5000万美元的比特币矿业基金:10月19日消息,香港数字资产管理公司JKL集团宣布设立5000万美元的比特币矿业基金,主要面向活跃在数字资产领域的家族办公室、高净值人士和机构投资者。金的投资策略包括以当前熊市价格收购比特币挖矿机,并通过JKL 挖矿网络进行部署。(Globenewswire)[2022/10/19 16:30:27]
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转出。
NFT项目DigiDaigaku 24小时交易量达465 ETH,地板价暂报2 ETH:8月10日消息,据OpenSea数据显示,NFT项目Digi Daigaku24小时交易量已达465ETH(约合77.84万美元),该项目采取FreeMint形式发售,上线24小时内地板价一度涨至2.2ETH,当前地板价暂报2ETH。[2022/8/10 12:15:13]
预防建议
以太坊黑暗森林中你能相信的只有自己,不要相信任何人精彩的话术,交易记录不会造假,只有自己验证了对应的那笔交易后才能相信对方说的话是对的。
注:本文参考自《SoliditybyExample》https://solidity-by-example.org/hacks/randomness
标签:MAKEMakerONEMoneymaker币makerdao下载onekeytools怎么安装到PPTSAFEMONEY
截至2022年12月23日,FANTOM?生态概览:?$FTM?价格=0.20美元?市值=5.2亿美元–排名65?PoS?历史最高=3.46美元(-94%)?历史低点=0.002美元(+10.
1900/1/1 0:00:001月9日~10日,?POW''ER2023香港Web3创新者峰会」将在香港数码港举办。今天,首批37位业界重量级嘉宾已确认参会,包括来自香港政府及监管部门、市场头部虚拟资产交易和管理平台、香港首.
1900/1/1 0:00:00以太坊在新年动作频频,不仅在1月8日的开发者会议上确认了上海升级,包括2月份的公共测试网和3月份的主网启动计划,也在1月9日发布了以太坊基金会官网的2023年Q1路线图.
1900/1/1 0:00:00主要观点:Web3游戏领域的大多数用户来自几款顶级游戏;在排名前100的游戏中,7%的游戏支持NFT租赁,18%的游戏计划采用这种模式;游戏玩家使用租赁的主要原因是为了降低成本.
1900/1/1 0:00:00熊市当下,回顾过去一年的市场表现,能发现各赛道较去年的牛市来说都十分低迷。从总交易量、交易额、市值、TVL等常见的数据侧体现出市场低点,然而从开发者数量、用户数量等关键数据维度所体现出来是市场的.
1900/1/1 0:00:002022年是最混乱、最动荡、金融最残酷的年份之一,不仅对数字资产行业,对更广泛的金融市场也是如此.
1900/1/1 0:00:00