链资讯 链资讯
Ctrl+D收藏链资讯
首页 > 波场 > 正文

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

作者:

时间:

By:小白

背景概述

上期我们了解了利用tx

functionmakeMoney(addressrecipient)publicpayable{require(msg

}contractVault{addressprivatemaker;addressprivateowner;uint256transferGasLimit;constructor()payable{owner=msg

modifierOnlyMaker(){require(msg

modifierOnlyOwner(){require(msg

Babylon上线测试网V0.7.1,启用CosmWasm智能合约支持:6月20日消息,旨在将比特币安全性带至Cosmos生态的项目Babylon宣布上线Babylon测试网V0.7.1,启用CosmWasm智能合约支持以及IBC客户端双向数据共享等。[2023/6/20 21:49:35]

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

functionwithrow()publicOnlyOwner{(boolsuccess,)=owner

区块链安全机构Halborn推出区块链和智能合约安全虚拟机 ZIION:8月29日消息,区块链安全机构 Halborn 推出开源区块链和智能合约安全虚拟机 ZIION,包含超过 100 种区块链安全工具,包括协议工具、EVM 工具、Rust 工具等,开发者可基于该虚拟机在比特币、以太坊、Solana、Polkadot、Substrate 基础之上进行开发。[2022/8/29 12:56:01]

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

DAO Maker官方:将停止所有涉及客户和客户资产托管的智能合约操作:9月4日消息,官方消息,DAO Maker官方表示,将停止所有涉及客户和客户资产托管的智能合约操作。将使用类似于Polkastarter和大多数其他launchpad的方式。将只提供代币发行,而不提供任何形式的质押、门户或桥。此外,DAO Maker正在市场上获取代币,以 确保SHO参与者在未来发布中获得代币,以及支持今天受影响的项目。受影响项目的代币价格大多已恢复到黑客攻击前的水平。

此前消息,DAO Maker的Vesting合约遭到黑客攻击,攻击者最终获利近400万美金。[2021/9/4 23:00:09]

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

声音 | 谷歌云开发者:可通过使用Chainlink oracle智能合约在链上放置BigQuery数据:据Coinspeaker报道,谷歌云开发者Allen Day发布博客文章介绍了通过使用Chainlink oracle智能合约在链上放置谷歌企业云数据仓库BigQuery的数据,描述了在不可变公共区块链中提供互联网托管数据的应用。Day认为,oracle基本上是现实世界和区块链之间的网关。[2019/6/14]

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

标签:MAKEMakerONEMoneyMakerDAOWhale Maker FundSTONEDFOXCryptographic Ultra Money

波场热门资讯
加密货币:对话 Dragonfly Capital 合伙人:加密行业 2023 投资指南_superwebusiness

Miles:欢迎参加这次对DragonflyCapital合伙人Haseeb的采访。我一直很期待采访你,我们有很多话题要谈,比如DragonflyCapital,你在2023年看好什么代币,这个.

AVR:?Binary Research:DeFi固定利率产品的设计、发展与困境_DEX

DeFi作为金融体系在区块链上的延伸,自然也会存在固定利率产品和浮动利率产品。在加密金融行业,固定利率产品和浮动利率产品接近同一时间上线,但由于链上用户需求的牵引,造成了当下以浮动利率产品为主的.

BTC:2023加密世界十大热门叙事盘点_usdk币2022年

加密货币市场经常随着叙事的变幻而波动,以下是我正在密切关注的2023年10个潜在叙事和催化剂。 1.ETH验证器中间件 像EigenLayer这样的服务,使用质押的ETH来保证其他协议的安全,有.

WEB:「香港Web3创新者峰会」王峰先生现场致辞全文_POWX

尊敬的陳茂波司長 尊敬的张曼莉副局长、陈浩濂副局长尊敬陈细明主席、任景信总裁尊敬的吴杰庄议员、邱达根议员各位来宾,女士们,先生们:上午好,欢迎来到POWERWeb3创新者香港峰会.

WEB:如何依靠加密货币波动率指数来获取收益?_Women Empowerment Token

从价格上看,这段时间相当无聊,BTC在很小的价格范围内波动......这是风暴前的平静?加密货币波动率指数几乎在历史最低。如果你预测未来将会发生一些波动,那么你就可以利用CVI来赚钱.

TPS:IBC 协议 2022 年主要进展回顾和 2023 年目标展望_WEB

2022年对于IBC跨链通信协议来说是进展丰硕的一年。在新链集成、功能和改进方面,IBC在2022年无疑巩固了它作为区块链互操作黄金标准的地位。另一方面,跨链生态继续蓬勃发展.