木星链 木星链
Ctrl+D收藏木星链

ETH:智能合约中的重入攻击

作者:

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

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由NickSzabo首次提出。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。

漏洞概述:

因为以太坊智能合约中是可以调用外部的合约代码,外部合约可能是攻击者构造的恶意不安全的合约代码,当在转账操作时执行代码,迫使攻击的合约回调包括自身的代码,和绕过源代码的限制发生了重入攻击事件。

发生重入攻击漏洞有两个原因:

1.?调用了外面不安全的合约代码

Moonbirds宣布启动第二批艺术家的Diamond Exhibition NFT投放:金色财经报道,蓝筹NFT项目Moonbirds在社交媒体宣布启动第二批艺术家的Diamond Exhibition NFT投放,涉及12位数字艺术家的10,000件NFT作品,包括 Hideki Tsukamoto、Ippsketch、Andrew Mitchell、Melissa Wiederrecht 等。“Choice Pass”空投将于4月18日进行,随后是4月24日至4月27日的偏好选择,Choice Pass 持有者的抽奖和空投将于4月27日进行。[2023/4/15 14:05:44]

2.?外部合约的函数早于状态变量的修改

The Sandbox收购德国游戏工作室Sviper:金色财经报道,The Sandbox已收购德国游戏开发工作室Sviper。The Sandbox此次收购旨在吸纳Sviper的开发、工程以及创意人才,为其元宇宙平台扩展元宇宙社交和游戏功能。[2023/3/1 12:36:07]

漏洞分析:

Aave社区关于“在以太坊主网上部署Aave V3”的提案投票获得通过:1月26日消息,Aave社区关于“在以太坊主网上部署Aave V3”的提案投票获得通过。提案显示,Aave V3将会重新部署在以太坊主网上而并非升级V2版本,以提高V3池之间的兼容性并降低一般复杂性。Aave V3初始版本将上线WBTC、WETH、wstETH、USDC、DAI、LINK和AAVE七种资产的借贷池。[2023/1/26 11:31:14]

看withdraw函数,我们可以看到它接收了一个_amount参数,将其与发送者的balance进行比较,不超过发送者的balance就将这些_amount发送给sender,同时我们注意到这里它用来发送ether的函数是call.value,发送完成后,它才在下面更新了sender的balances,这里就是可重入攻击的关键所在了,因为该函数在发送ether后才更新余额,所以我们可以想办法让它卡在call.value这里不断给我们发送ether,同样利用的是我们熟悉的fallback函数来实现。

ETH市值重返2250亿美元上方:金色财经消息,据Coingecko最新数据显示,随着ETH价格上涨,以太坊市值已重返2250亿美元上方,达到225,874,966,373美元。目前ETH价格为1,882.74美元,24小时涨幅超11.8%。[2022/8/11 12:17:27]

当然,这里还有另外一个关键的地方——call.value函数特性,当我们使用call.value()来调用代码时,执行的代码会被赋予账户所有可用的gas,这样就能保证我们的fallback函数能被顺利执行,对应的,如果我们使用transfer和send函数来发送时,代码可用的gas仅有2300而已,这点gas可能仅仅只够捕获一个event,所以也将无法进行可重入攻击,因为send本来就是transfer的底层实现,所以他两性质也差不多。

2016年6月以太币组织TheDAO被攻击,攻击者利用两个代码漏洞创建子合约提取了360万个以太币。接下来我们简单说一下这个事件

攻击者利用the?DAO函数智能合约中splitDAO()函数,重复对DAO资产进行重入攻击,不断从项目的资产里面分离出DAO资产并转移到自己的账户中

1.?创建钱包,调用splitDAO函数

2.?创建一个分割提案到一个新的钱包地址

3.?等待再调用splitDAO函数

4.?成功获取了ether

?解决方法:

1.?使用其他转账函数

进行以太坊转账时发送给外部地址时使用Solidity的内置函数,这将不足以调用另一份合约.

2.?先修改状态变量

这种方式就是确保状态变量的修改要早于转账操作,即Solidity官方推荐的检查-生效-交互模式(checks-effects-interactions)。

1.?使用互斥锁

互斥锁就是添加一个在代码执行过程中锁定合约的状态变量以防止重入攻击。

2.?使用OpenZeppelin官方库

OpenZeppelin官方库中有一个专门针对重入攻击的安全合约

??本文作者:权星实验室团队

来源:金色财经

标签:ETHTHEAVEAAVELETH币2gatherSaverTokenAave DAI

比特币行情热门资讯
元宇宙:专访-NFT行业巨头PDD,打开元宇宙之门

元宇宙长期以来只停留在概念阶段,而随着近期加密界NFT概念的火爆出圈,让元宇宙一词从星星进入燎原之势,这一极具科幻感和未来感的概念激发了人们的无限想象.

1900/1/1 0:00:00
ETH:道富伦币:1-23比特币以太坊压力支撑 咱们韭菜命运必须掌握在咱们手里

今日行情分析昨日比特币再次发力下探至34000一线走出反弹,币价反弹之后再次承压回落,每当探底之后币价都会出现一定的反弹,但是力度依旧不强,所以目前看还是以反弹空为主!从日线图来看.

1900/1/1 0:00:00
NFT:金色早报 | a16z计划为两只新加密基金筹集45亿美元

头条▌a16z计划为两只新加密基金筹集45亿美元1月20日消息,据英国《金融时报》报道,硅谷风投机构AndreessenHorowitz计划为其新加密货币风险基金筹集35亿美元.

1900/1/1 0:00:00
DAN:叠加DeFi2.0 再看AC的野心

原文标题:《Dani''svision》分析随着令人期待的SOLID的推出,DaniToken生态系统很可能会在短期内大幅增长.

1900/1/1 0:00:00
NFT:回顾 2021 NFT 的崛起之路:累计交易额达 215 亿美元

撰文:lynn,FootprintAnalyticsAnalystDataSource:FootprintAnalytics-2021NFTAnnualReportDashboard这篇文章是我.

1900/1/1 0:00:00
NFT:NFT新贵PDD来袭,联合波卡如虎添翼

导语:2022年,NFT的燎原之势并没有减弱的迹象,元宇宙的概念就来势汹汹,为加密行业的热点再添一把火,承载这些NFT交易的平台也如虎添翼,其中NFT交易新贵PDD.IM横空出世.

1900/1/1 0:00:00