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

又被攻击 VETH智能合约是如何被盗90万美元的?

作者:

时间:

前言

2020 年 7 月 1 日,VETH 合约遭遇黑客攻击。慢雾安全团队在收到情报后对本次攻击事件进行了全面的分析,下面为大家就这次攻击事件展开具体的技术分析。

攻击细节

本次攻击交易如下 0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224

通过交易概览可以看到攻击者在 Uniswap 中使用 0.9 ETH 兑换成 VETH,然后使用 VETH 在 Vether 合约中进行操作,最终盗走巨额的 VETH。

现在使用 OKO 合约浏览器对具体的攻击细节进行分析(下图只展示一部分)https://oko.palkeo.com/0xdd1120a90ed4112b634266d6a244b93ca86785317bc75f0e170ab0cd97c65224/

通过分析交易内具体的细节可以发现:攻击者先创建了一个合约0x47Ed415006C6F8052Fff05fe983f31D6D24B8fDB 通过此合约对 Vether 合约中的 changeExcluded(unknown37217349) 函数与 transferFrom 函数进行了调用。

数据:iPhone比特币价格12年来首次上涨:金色财经报道,根据加密社区用户 @MMCrypto 在社交媒体披露从 iPhone 4 到 iPhone 14 对应的比特币价格显示,iPhone 系列手机的比特币价格 12 年来首次上涨。

数据显示,2010年推出的iPhone4售价约合2901BTC,iPhone13约合0.02BTC,期间iPhone系列手机对应的比特币价格均呈现下降趋势,但iPhone14约合0.05BTC,较iPhone13上涨了150%。[2022/9/8 13:15:46]

接下来对这两个函数的具体代码进行分析:

可以看到在 transferFrom 函数中,先对 mapAddress_Excluded[msg.sender] 进行了 if 判断,具体逻辑是mapAddress_Excluded[msg.sender]为 false 时,将会检查对攻击者合约的授权额度,然后调用_transfer函数进行转账。而这个逻辑显然走不通,攻击者合约是没有任何授权额度的。因此mapAddress_Excluded[msg.sender]只能为 true ,然后直接调用_transfer函数进行转账。

接下来具体分析该如何将mapAddress_Excluded[msg.sender]设置为 true:

通过查看合约可以发现:

合约在初始化时只将address(this)和burnAddress的mapAddress_Excluded置为 true,那么可以肯定还有其他逻辑可以设置mapAddress_Excluded,通过分析  Vether 合约可以发现changeExcluded函数可以实现对mapAddress_Excluded的设置。

通过分析changeExcluded函数可以发现其可见性为external,因此攻击者合约可以直接调用changeExcluded函数,此时攻击者合约的mapAddress_Excluded为 false,所以会进入 if 的逻辑中。

接下来对 if 逻辑内的代码进行具体分析:

在进行 if 逻辑后需要先支付手续费,具体为上方代码块中的第 3 行,那这个手续费是从哪里来呢?答案就是攻击者最初转入合约中的 0.9 ETH。

图中可以看到,通过 0.9 ETH 兑换成约 138 VETH。

通过计算代码中的mapEra_Emission/16我们可以得到攻击者需要支付的手续费:我们读取合约中的 mapEra_Emission可以知道 mapEra_Emission为 2048。

此时计算mapEra_Emission/16可得手续费为 2048/16 = 128 VETH,而攻击者兑换了约138 VETH 是足够用来支付手续费的,因此便可以通过上方代码块中的第 4 行将攻击者合约的mapAddress_Excluded置为 true。

创建攻击合约,通过 Uniswap 将 0.9 ETH 兑换成约138 VETH(此处换币为了后续支付手续费)

调用 Vether 合约中的changeExcluded函数并利用先前在 Uniswap 兑换的约 138 VETH 支付 128 VETH 的手续费,然后将mapAddress_Excluded置为 true

调用 transferFrom 函数,利用mapAddress_Excluded为 true,直接进行转账操作

拿钱走人

0xfa2700e67065bc364136b5e7f57112083cb2a0cd

0x75572098dc462f976127f59f8c97dfa291f81d8b

修复建议

此次攻击主要利用 Vether 合约中changeExcluded函数的可见性为external且未有权限限制,用户可以直接进行外部调用为攻击创造了必要的条件。因此应做好对changeExcluded函数的权限或可见性的限制,从而避免任意用户可以直接外部调用changeExcluded函数。

标签:DEDETHLUDCLUDED价格ETHSTK币LUD币CLU币

Ethereum热门资讯
6.27早间行情:BTC延续缩量回撤走势 它为关键支撑

大盘延续震荡走势,以9100-9300美金区间展开,量能同步萎缩。短时关注9000-9100美金区间的底部支撑,9300美金的区间压力。日线级别则是整体走势偏空,币价跌破了MA60日均线的支撑,同时MACD死叉,开始逐步跌破0轴,此时继续多头量能,否则空头形态一旦正式形成,后续风险较大。

金色百科|Filecoin的共识机制是什么?

作为一个以“去中心化存储”为核心目标的技术,IPFS最重要的功能、能提供给用户最好的服务就是存储。作为IPFS激励层的区块链Filecoin,自然也要把“存储”作为重中之重的共识。 Filecoin的共识机制是预期共识,共识机制中最重要的证明系统是复制证明与时空证明。 在给矿工激励时,更多考察对方是否能够完成“存储”这一行为。

金色观察丨亿邦 vs. 嘉楠 为何中国加密公司都去美国上市?

金色财经 区块链6月27日讯   北京时间2020年6月26日晚9点半,亿邦国际(EBON)正式登陆美股纳斯达克,成为继嘉楠后第二个美股上市的中国矿机制造商。

金色观察丨监守自盗?Blockstream侧链Liquid存漏洞

金色财经 区块链6月30日讯  研究人员发现Blockstream侧链Liquid Network一直存在Bug,该漏洞可能会导致数百万比特币被盗。据悉,这个漏洞是由比特币开发人员,加密创业公司Summa One创始人詹姆斯·普雷斯特维奇(James Prestwich)发现并披露出的。

金色趋势丨纳斯达克为我们预演了BTC未来牛市行情?

我们从BTC和纳斯达克指数长期走势对比可以发现,两者之间还是比较相似的,前期阶段都是牛市顶点回落的长期下降趋势线压制,目前BTC这一轮3800-10000的趋势行情也是未能突破17年顶点下来的趋势线,价格冲至1万美金上方再回落,包括19年顶点14000美金和今年初行情的顶点10500美金,都未能有效突破这一长期压制线,这一点和纳斯达克指数走势非常相似。