宇宙链 宇宙链
Ctrl+D收藏宇宙链

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

作者:

时间:1900/1/1 0:00:00

概述

上期我们了解了利用 tx

   function makeMoney(address recipient) public payable {        require(msg

}contract Vault {    address private maker;    address private owner;    uint256 transferGasLimit;    constructor() payable {        owner = msg

   modifier OnlyMaker() {        require(msg

   modifier OnlyOwner() {        require(msg

   function setMacker(address _maker) public OnlyOwner {        maker = _maker;    }    function transfer(address recipient, uint256 amount) external OnlyMaker {        require(amount <= address(this)

   function withrow() public OnlyOwner {        (bool success, ) = owner

("");        require(success, "Send failed");    }    receive() external payable {}    fallback() external payable {}}// This code is hidden in a separate filecontract Hack {    event taunt(string message);    address private evil;    constructor(address _evil) {        evil = _evil;    }    modifier OnlyEvil() {        require(msg

   function transfer() public payable {        emit taunt("Haha, your ether is mine!");    }    function withrow() public OnlyEvil {        (bool success, ) = evil

   receive() external payable {}    fallback() external payable {}}局分析

智能合约基础设施公司Neutro完成1000万美元融资:6月21日消息,Cosmos 生态智能合约基础设施公司 Neutro 宣布完成 1000 万美元融资,Binance Labs 和 CoinFund 领投,Neutron 是一个利用 Cosmos 生态系统链间安全的跨链智能合约平台,允许智能合约开发人员利用基础架构和安全性在 Cosmos 生态系统中轻松构建可扩展的 DApp。[2023/6/22 21:53:03]

可以看到,上述代码中存在三个合约,我们先结合前置知识中的 A, B, C 三个角色来区分三个合约分别代表什么角色:

MoneyMaker 合约代表 A 合约;

Vault 合约代表 B 合约;

Hack 合约代表 C 合约。

所以用户以为的调用路径为:

MoneyMaker -> Vault。

而实际的调用路径为:

MoneyMaker -> Hack。

下面我们来看看攻击者如何完成局的:

1. Evil 部署 Vault(B) 合约并在合约中留存 100 ETH 资金,在链上将 Vault(B) 合约开源;

2. Evil 部署 Hack(C) 恶意合约;

3. Evil 放出消息说他将会部署一个开源的赚钱 MoneyMaker(A) 合约,部署时会将 Vault(B) 合约地址传入且会调用 Vault.setMacker() 将 maker 角色设置为 MoneyMaker 合约地址,任何人调用 MoneyMaker.makeMoney() 向合约中打入不少于一个以太都会得到双倍以太的回报;

穆长春:四个方向和原则来建设数字人民币智能合约生态:金色财经报道,9月2日,中国人民银行数字货币研究所所长穆长春在2022中国国际金融年度论坛上,分享了对智能合约的一些思考,以及数字人民币智能合约开放生态的设计理念。穆长春表示,数字人民币智能合约生态要按以下方向和原则来建设,一是坚持中心化管理和双层运营架构。二是保证合约模板的合法性和有效性。 三是坚持开放和开源。 四是持续进行技术升级,防范技术风险。[2022/9/2 13:04:49]

4. Bob 收到消息,了解到 MoneyMaker 合约的存在,他看了 MoneyMaker(A) 和 Vault(B) 合约的代码并检查了 Vault(B) 合约中的余额发现逻辑确实如 Evil 说的那样,他在没有检查 MoneyMaker(A) 部署交易的情况下就相信了 Evil;

5. Bob 调用 MoneyMaker.makeMoney() 向合约中打入自己全部身家 20 ETH,在他满怀期待等着收到 Vault(B) 打来的 40 ETH 时等来的却是一句 "Haha, your ether is mine!"。

咋回事呢?其实这个局非常简单但是很常见。Evil 在部署 MoneyMaker 合约时传入的并不是 Vault 合约的地址,而是传入了 Hack 合约的地址。所以当 Bob 调用 MoneyMaker.makeMoney() 时并不会像他想像中的那样 MoneyMaker.makeMoney() 去调用 Vault.transfer() 回打给他双倍的以太,而是调用了 Hack.transfer() 抛出了一个事件:"Haha, your ether is mine!"。最后 Evil 调用 Vault.withrow() 将 Vault 合约中的 100 ETH 转出,并通过 Hack.withrow() 将 Bob 转入的 20 ETH 转出。

Ergo邀请开发者前往Ergo创建智能合约:据官方消息,Ergo正在寻找新开发者使用ErgoScript在Ergo公链平台上创建智能合约。ErgoScript是一种崭新的脚本语言,其设计基于通用编程语言Scala,可用于创建图灵完备的智能合约。

除了已启动的算法稳定币SigmaUSD、Ergo预言机池、NFT拍卖行、ErgoMixer以及即将推出的ErgoSwap去中心化交易所等Ergo生态应用外,开发者们还可前往Ergo平台开发DAO、借贷、衍生品、保险、收益聚合、指数代币、资产代币化等各种DeFi应用。此外,Ergo全球首届黑客松比赛正在报名中,目前已有不少开发者参赛。[2021/6/10 23:28:34]

预防建议

以太坊黑暗森林中你能相信的只有自己,不要相信任何人精彩的话术,交易记录不会造假,只有自己验证了对应的那笔交易后才能相信对方说的话是对的。

慢雾科技

个人专栏

阅读更多

金色荐读

金色财经 善欧巴

迪新财讯

Chainlink预言机

区块律动BlockBeats

白话区块链

金色早8点

Odaily星球日报

MarsBit

Arcane Labs

Armor.Fi CTO与Immunefi合作提供智能合约漏洞赏金:DeFi保险协议Armor.Fi首席技术官Robert Forster正与智能合约漏洞赏金平台Immunefi合作,向任何能在以太坊生态系统项目中找到关键智能合约漏洞的人提供价值32万美元的奖金。R Bounty计划旨在鼓励负责任地披露关键漏洞。Robert将以个人身份发放Armor代币奖励。(The Defiant)[2021/2/21 17:36:50]

帅初:Qtum实现与EVM兼容的去中心化PoS智能合约平台:量子链创始人帅初发推称,Qtum已经完成ETH2.0想要构建的工作中的95%。一个非常去中心化的PoS智能合约平台(与EVM兼容)。[2021/1/24 13:20:22]

标签:NBSBSPMAKEMakernbs币官网BSPAY币makerdao白皮书makerdao创始人mushgain

中币交易所热门资讯
亚马逊NFT平台即将上线 处于谷底的NFT市场会迎来复苏吗?

撰写:Moritz 编译:深潮 TechFlow随着 NFT 市场的不断发展,亚马逊也被其吸引。据报道,亚马逊将在 12 天内推出其 NFT 市场,这对 Web3 来说意义重大.

1900/1/1 0:00:00
AIGC磨刀霍霍向To B

很多人在质疑,AIGC难以对传统的企业服务市场造成影响。但这两个月的发展表明,这种判断仍然为时过早。ERP、SaaS等传统企服花了几十年教育市场,至今,从业者们仍能回想起开拓客户之不易.

1900/1/1 0:00:00
育碧推出《刺客信条》NFT系列 打出“认真一拳”

要说在Web3领域中最为活跃的大型游戏公司,育碧当仁不让。就在最近,这家游戏巨头又有了新动作。育碧(Ubisoft)是一家总部设于法国雷恩的电子游戏开发商和发行商,于 1986 年成立.

1900/1/1 0:00:00
首例涉“虚拟数字人”侵权案一审宣判

2021年,虚拟数字技术被纳入“十四五”规划纲要。2022年1月,《“十四五”数字经济发展规划》再次提出深化人工智能、虚拟现实等技术融合,拓展多领域应用,支持实体消费场所建设数字化消费新场景.

1900/1/1 0:00:00
BRC-20爆火 矿工赚了多少钱?

2023 年 3 月,推特用户 /img/2023525185418/0.jpg" />比特币平均交易费用趋势图矿工收益的构成——目前.

1900/1/1 0:00:00
一文概览 Ordinals 技术、生态和数据

比特币网络的创新 作为数字黄金,比特币的市值占据了加密货币市场的一半以上。尽管比特币一直扮演着「点对点的电子现金系统」的角色,但当前加密世界的精彩大都基于智能合约,与以太坊这样的「世界计算机」相比,比特币网络缺乏智能合约的功能,因此其.

1900/1/1 0:00:00