月亮链 月亮链
Ctrl+D收藏月亮链
首页 > XMR > 正文

MAKE:智能合约安全审计入门篇 —— 移花接木_SAFEMONEY

作者:

时间: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

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

XMR热门资讯
FAN:AC回归后,Fantom能否重拾往日DeFi的辉煌?_ant币未来价值

截至2022年12月23日,FANTOM?生态概览:?$FTM?价格=0.20美元?市值=5.2亿美元–排名65?PoS?历史最高=3.46美元(-94%)?历史低点=0.002美元(+10.

1900/1/1 0:00:00
WEB:POW'ER 2023香港Web3创新者峰会即将开幕,首批重量级嘉宾确认参会_香港虚拟资产交易牌照获得的公司

1月9日~10日,?POW''ER2023香港Web3创新者峰会」将在香港数码港举办。今天,首批37位业界重量级嘉宾已确认参会,包括来自香港政府及监管部门、市场头部虚拟资产交易和管理平台、香港首.

1900/1/1 0:00:00
以太坊:一文速览以太坊官方2023年一季度路线图_以太坊官网

以太坊在新年动作频频,不仅在1月8日的开发者会议上确认了上海升级,包括2月份的公共测试网和3月份的主网启动计划,也在1月9日发布了以太坊基金会官网的2023年Q1路线图.

1900/1/1 0:00:00
NFT:简析 NFT 租赁市场:Web3 游戏发展的必然?_广州幻境空间元宇宙体验馆

主要观点:Web3游戏领域的大多数用户来自几款顶级游戏;在排名前100的游戏中,7%的游戏支持NFT租赁,18%的游戏计划采用这种模式;游戏玩家使用租赁的主要原因是为了降低成本.

1900/1/1 0:00:00
NFT:NFT市场年度数据回顾:NFT仍将会是开发者的首选吗?_FTF

熊市当下,回顾过去一年的市场表现,能发现各赛道较去年的牛市来说都十分低迷。从总交易量、交易额、市值、TVL等常见的数据侧体现出市场低点,然而从开发者数量、用户数量等关键数据维度所体现出来是市场的.

1900/1/1 0:00:00
比特币:回首2022,加密市场将何去何从_以太坊币怎么挖矿

2022年是最混乱、最动荡、金融最残酷的年份之一,不仅对数字资产行业,对更广泛的金融市场也是如此.

1900/1/1 0:00:00