freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

零时科技 | APE 攻击事件分析
2022-04-08 16:21:53
所属地 陕西省

​0x1 事件背景

APE 是一种代币,旨在支持由社区控制和构建的下一步行动。它将作为一个分散的协议层,用于主导社区倡议,推动文化进入元宇宙。

零时科技区块链安全情报平台监控到消息,北京时间 2022 年 3 月 17 日,APE 遭到黑客攻击,零时科技安全团队及时对此安全事件进行分析。

0x2 攻击者信息

零时科技安全团队通过初步追踪分析,此次攻击发生在 Ethereum 链,主要攻击信息如下:

攻击者钱包地址:

• 0x6703741e913a30D6604481472b6d81F3da45e6E8

攻击者创建的相关合约地址:

• 0x3EbD3D86f810B141F9b2e9B15961FC66364b54f3

• 0x7797A99a2e91646aBdc9DC30e838A149CCB3013B

Token 合约(漏洞合约):

• 0x025C6da5BD0e6A5dd1350fda9e3B6a614B205a1F

攻击交易流程:

• 0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098

漏洞相关合约:

•BeaconProxy: 0xEA47B64e1BFCCb773A0420247C0aa0a3C1D2E5C5

•NFTXVaultUpgradeable: 0x73d2ff81fcea9832fc9ee90521abde1150f6b52a

0x3 攻击分析

将攻击事务放到 tenderly 上分析,得下图:

攻击者主要进行了三步操作:

  • 步骤1: 攻击者通过闪电贷获取 ERC 20 代币,将其兑换为 NFT
  • 步骤2: 攻击者用兑换的 NFT 获取 APE 空投代币
  • 步骤3: 将 NFT 归还,获取质押的 ERC 20 代币,归还闪电贷,将获利资金转到钱包地址

0x4 漏洞细节

攻击成功原因

  • 步骤1: 闪电贷(合约:NFTXVaultUpgradeable)

如上图 999 行所示:「数量+ 费用」的 vToken 会被销毁掉,所以攻击者准备的 vToken 需大于借来的 vToken 才能执行 flashLoan() 函数。

  • 步骤2: 赎回 NFT(合约:NFTXVaultUpgradeable)

如图所示:redeem 函数调用 redeemTo 函数,在 2127 行销毁了代币,2134 行扣除了手续费,2137 行直接向调用者发送 NFT。

  • 步骤3: 领取空投代币(合约:AirdropGraphsToken)

如图所示:在第 105 行核对 alpha.balanceOf() 和 beta.balanceOf() 以确保调用者确实是 BAYC/MAYC 持有者。然后在第 114-115 行,用清单来注记已领取的 tokenId,如此一来第 110 行中的 getClaimableTokenAmountAndGammaToClaim() 函数就能让合约调用者仅领取到可领取的 ApeCoin 数量。

  • 步骤4: 铸币(合约:NFTXVaultUpgradeable)

如图所示:2089 行将 NFT 给合约,2092 行发送代币,2094 行消耗手续费。

整个 NFTXVaultUpgradeable 合约提供了 铸币、赎回 和 闪电贷 功能。攻击者利用这一套身法,轻松绕过 AirdropGraphsToken 合约对当前持有 NFT 数量的检查,获得了不错的收益。

至此,攻击者利用此攻击流程,通过对 AirdropGraphsToken、NFTXVaultUpgradeable 合约进行攻击,共获利约 35 万美元(以攻击时的市场价计算)。

0x5 总结

通过此次攻击事件来看,攻击成功最重要的因素是 AirdropGraphsToken 合约中:没有对空投的原则做合理的效验。攻击者可以通过闪电贷兑换 NFT 来获取 APE 空投,再将 NFT 铸币归还闪电贷会对项目造成威胁。

0x6 安全建议

对于此类安全事件,零时科技安全团队给出下述安全建议。

• 不依赖可被人为操控的因素对资产定价

• 运用机制判断依赖条件是否合法(如:判断依赖条件的持续时间)

# 黑客攻击 # 区块链安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者