月亮链 月亮链
Ctrl+D收藏月亮链

BSP:智能合约安全审计入门篇 —— 移花接木_nbs币最新消息

作者:

时间: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 {}}局分析

Trustless Market开发团队将Uniswap的智能合约部署到比特币网络上:5月11日消息,一群开发人员已将Uniswap的智能合约部署到比特币网络上,以利用BRC-20代币的兴起并开发去中心化金融 (DeFi) 生态系统。该协议称为Trustless Market,日交易量已达50万美元,吸引了2000多名用户,并让流动性提供者从网络上进行的所有swap交易中获得2%的佣金。[2023/5/11 14:57:31]

可以看到,上述代码中存在三个合约,我们先结合前置知识中的 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() 向合约中打入不少于一个以太都会得到双倍以太的回报;

Terra生态DEX Astroport发布Terra 2.0计划,智能合约将重新部署并通过快照发行新代币:金色财经消息,Terra生态去中心化交易所Astroport发布Terra 2.0计划,Astroport智能合约系统将在新网络上重新部署,此外还要保持与Terra Classic上的Astroport的兼容性。Terra2.0上的新ASTRO代币将基于Terra Classic上ASTRO和xASTRO余额的快照进行分配,快照日期将与在“Terra生态系统复兴计划2”中用于计算LUNA和UST余额的快照日期相同,其他细节(包括代币分配百分比、释放、治理等)将尽快公布。[2022/5/24 3:37:03]

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 转出。

火币研究院:DeFi挖矿热潮凸显智能合约安全性问题,需警惕无多签机制合约:近期随着DeFi挖矿的热潮,出现了不少智能合约的迁移或安全事件。火币研究院指出,在以太坊上智能合约的灵活程度较低,已经部署的智能合约代码无法直接覆盖升级,因此在需要进行漏洞修复或者功能升级时,只能通过发布新合约等手段进行功能和数据的迁移,比如YAM、SUSHI等项目。但在EOS网络中,智能合约可升级性是在白皮书中明确指出的功能,合约的管理员可以像部署合约一样对合约进行覆盖升级,这意味着管理员有权限通过升级合约代码等方式拿走合约中的资金,对投资者而言意味着极高的资金风险。但值得注意的是,在EOS网络中也可以通过设置多签等手段,限制灵活性避免集中化控制,投资者可以通过是否多签对合约安全系数做简单判断。总而言之,在区块链世界,灵活性的提升往往伴随着权限合理配置的难度增加和新的安全风险。[2020/9/10]

预防建议

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

慢雾科技

个人专栏

阅读更多

金色荐读

金色财经 善欧巴

迪新财讯

Chainlink预言机

区块律动BlockBeats

白话区块链

金色早8点

Odaily星球日报

比原链发布延迟满足智能合约锁仓计划:比原链今公布锁仓计划,对基金会持有的4.2亿BTM进行延迟满足智能合约锁仓处理,共锁仓11年,分4个时间段释放。据悉,比原链在2019年推出“流浪地球”计划,计划分“刹车时代、逃逸时代、先流浪时代、后流浪时代、新太阳时代”五个阶段推进,第一阶段“刹车时代”目标已经在2019年顺利完成,当前处于第二阶段“逃逸时代”,本次锁仓计划将从逃逸时代开始直到新太阳时代终止。经在2019年顺利完成,当前处于第二阶段“逃逸时代”[2020/7/17]

MarsBit

Arcane Labs

动态 | EOS Mediterranean 推出智能合约在线编辑器:据 IMEOS 报道,EOS Mediterranean 推出一款在线智能合约编辑器 Dev4eos,支持 EOS Mainnet,丛林测试网和麒麟测试网。团队鼓励用户在 Github 上提交 issue。[2018/11/22]

标签:BSPNBSQUOMAKEBSPTnbs币最新消息QUON币Maker Basic

比特币行情热门资讯
ETH:Bankless:为什么 EigenLayer 让我们兴奋?_GEN

地平线上似乎出现了一个新的“纪元”。在加密之旅中,每隔一段时间,开拓者就会发现一种新的原语,从而改变整个行业的格局.

1900/1/1 0:00:00
NFT:科普:NFTFi是什么?_Defina Finance

NFTFi是一个快速增长的领域,位于NFT和去中心化金融(DeFi)的交叉点上,其最终目标是为NFT市场解锁额外的价值、机会和流动性.

1900/1/1 0:00:00
DAO:AI 与区块链的融合:迈向 Nature2.0_比特币

原文:Nature 2.0作者:Trent McConaghy编译:Sissi封面:/img/2023525190500/0.

1900/1/1 0:00:00
BSP:跟随聪明钱:一览顶级加密风投的最新投资_BSPT币

原文作者:MooMsNEX Protocol 建设者 MooMs 长期追踪 Web3“聪明钱”的流向,并试图提前发现下个行业趋势.

1900/1/1 0:00:00
LINK:项目跑路也能保证资金安全?体验一下 zkLink 资金灾难逃离测试_区块链

来源:zkLink 社区加密世界经常被形容为黑暗森林,这是一个充满机遇,但也危险重重的新大陆。黑客攻击和程序漏洞时刻威胁着用户资金安全,更有甚者,项目卷款跑路的事情也时有发生,大大提高用户筛.

1900/1/1 0:00:00
BSP:智能合约安全审计入门篇 —— 抢跑_Legends of Mitra

背景概述在上篇文章中我们了解了合约中隐藏的恶意代码,本次我们来了解一个非常常见的攻击手法 —— 抢跑.

1900/1/1 0:00:00