火星链 火星链
Ctrl+D收藏火星链

TOKE:慢雾:XCarnival NFT借贷协议漏洞分析

作者:

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

原文作者:九九,慢雾安全团队

2022 年 6 月 27 日,据慢雾区消息,XCarnival 项目被曝出严重漏洞遭黑客攻击并盗走 3,087 个 ETH(约 380 万美元)。XCarnival 是一个 ETH 链上的 NFT 借贷项目,目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:

核心合约地址

P2Controller:

0x34ca24ddcdaf00105a3bf10ba5aae67953178b85

XNFT:

0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909

xToken:

0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663

慢雾:正协助Poly Network追查攻击者,黑客已实现439万美元主流资产变现:7月2日消息,慢雾首席信息安全官23pds在社交媒体发文表示,慢雾团队正在与Poly Network官方一起努力追查攻击者,并已找到一些线索。黑客目前已实现价值439万美元的主流资产变现。[2023/7/2 22:13:24]

攻击者 EOA 地址

0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a

攻击合约地址

0xf70F691D30ce23786cfb3a1522CFD76D159AcA8d

0x234e4B5FeC50646D1D4868331F29368fa9286238

0x7B5A2F7cd1cc4eEf1a75d473e1210509C55265d8

慢雾:BXH于BSC链被盗的ETH、BTC类资产已全部跨链转至相应链:11月3日消息,10月30日攻击BXH的黑客(BSC: 0x48c94305bddfd80c6f4076963866d968cac27d79)在洗币过程中,多次使用了 AnySwap、PancakeSwap、Ellipsis 等兑换平台,其中部分 ETH 代币被兑换成 BTC。此外,黑客现已将 13304.6 ETH、642.88 BTCB 代币从 BSC 链转移到 ETH、BTC 链,目前,初始黑客获利地址仍有 15546 BNB 和价值超 3376 万美元的代币。慢雾 AML 将持续监控被盗资金的转移,拉黑攻击者控制的所有钱包地址,提醒交易所、钱包注意加强地址监控,避免相关恶意资金流入平台。[2021/11/3 6:28:49]

0xc45876C90530cF0EE936c93FDc8991534F8A6962

动态 | 慢雾:巨鲸被盗2.6亿元资产,或因Blockchain.info安全体系存在缺陷:针对加密巨鲸账户(zhoujianfu)被盗价值2.6亿元的BTC和BCH,慢雾安全团队目前得到的推测如下:该大户私钥自己可以控制,他在Reddit上发了BTC签名,已验证是对的,且猜测是使用了一款很知名的去中心化钱包服务,而且这种去中心化钱包居然还需要SIM卡认证,也就是说有用户系统,可以开启基于SIM卡的短信双因素认证,猜测可能是Blockchain.info,因为它吻合这些特征,且历史上慢雾安全团队就收到几起Blockchain.info用户被盗币的威胁情报,Blockchain.info的安全体系做得并不足够好。目前慢雾正在积极跟进更多细节,包括与该大户直接联系以及尽力提供可能需求的帮助。[2020/2/22]

1.攻击者通过 XNFT 合约中的 pledgeAndBorrow 函数来进行抵押 NFT 并借出 xToken。

声音 | 慢雾:警惕“假充值”攻击:慢雾分析预警,如果数字货币交易所、钱包等平台在进行“EOS 充值交易确认是否成功”的判断存在缺陷,可能导致严重的“假充值”。攻击者可以在未损失任何 EOS 的前提下成功向这些平台充值 EOS,而且这些 EOS 可以进行正常交易。

慢雾安全团队已经确认真实攻击发生,但需要注意的是:EOS 这次假充值攻击和之前慢雾安全团队披露过的 USDT 假充值、以太坊代币假充值类似,更多责任应该属于平台方。由于这是一种新型攻击手法,且攻击已经在发生,相关平台方如果对自己的充值校验没有十足把握,应尽快暂停 EOS 充提,并对账自查。[2019/3/12]

在 pledgeInternal 函数中转入 NFT 并生成订单:

2. 接着调用 withdrawNFT 函数提取出质押的 NFT,其中首先判断该订单是否被清算状态,如果不是则判断该订单的状态是否为 NFT 还未被提取且借款金额为 0(无负债),如果通过即可提取抵押的 NFT。

3. 以上为攻击前生成订单的准备操作,接着攻击者开始利用生成的订单直接调用 xToken 合约中的 borrow 函数进行借款。

在 borrowInternal 函数中,会外部调用 controller 合约中的 borrowAllowed 函数来判断是否可以借款。

可以看到在 borrowAllowed 函数会调用 orderAllowed 函数进行订单相关信息的判断,但是在这两个函数中均没有进行 _order.isWithdraw 状态的判断。因此攻击者可以利用之前生成的订单(订单里的抵押的 NFT 已经被提走)来调用 XToken 的 borrow 函数来借款,而因为抵押的 NFT 在之前已经被提出,故攻击者可以不用还款来实现获利。

此处仅展示其中一笔攻击交易的细节,其余攻击交易的手法均一致,不再赘述。

攻击前准备——生成订单的交易:

0x61a6a8936afab47a3f2750e1ea40ac63430a01dd4f53a933e1c25e737dd32b2f

1. 首先攻击者将 NFT 转入攻击合约并进行授权,接着调用 xNFT 合约中的 pledgeAndBorrow 函数在进行抵押 NFT 生成订单并借款的操作,此处需要注意一点是该函数可以控制传入的 xToken,攻击者传入了自己构造的 xToken 合约地址,并且让借款数量为 0,目的是为了满足后续能成功提出 NFT 时的不被清算且负债为 0 的条件。

2. 攻击者紧接着调用 withdrawNFT 函数来进行提取抵押的 NFT:

正式攻击交易:

0x51cbfd46f21afb44da4fa971f220bd28a14530e1d5da5009cfbdfee012e57e35

攻击者调用 xToken 合约的 borrow 函数,传入之前生成的订单的 orderID,重复了该操作 22 次(orderID: 45 - 66),而因为 NFT 在准备阶段已经提走,估计无需还款以此来获利。

本次漏洞的核心在于借款的时候,没有进行订单中 NFT 是否被提走的状态的判断,导致攻击者可以在把 NFT 提走之后再利用之前生成的订单来借款而无需还款,以此来获利。针对此类漏洞,慢雾安全团队建议在进行借款操作时应做好订单状态中是否已经提走抵押品的判断,避免再次出现此类问题。

标签:NFTROWBORTOKENFTMart TokenPOOGROWBORING币Arowana Token

芝麻开门交易所下载热门资讯
ADA:分析:Circle(USDC)崩溃论与巨额坏账是真实的吗

近日一位自称 @CryptoInsider23 的内部人士披露了所谓 Circle(USDC)的内幕。而 Circle CEO 对此的回复是“utter nonsense”(胡说八道).

1900/1/1 0:00:00
COMP:一文探讨下一代稳定币设计

不可能三角对主权国家信用货币体系起到制约作用,并在实践上不断被证明。稳定币也存在着不可能三角,并受其制约,因此在讨论下一代稳定币的设计之前,我们需要先了解不可能三角,并与稳定币建立联系,从而抓住.

1900/1/1 0:00:00
DEFI:浅谈:CeDeFi 的崩溃给DeFi带来的影响

加密货币市场在2022年第二季度崩溃,警告信号确实存在,但并不是每个人都意识到了。当你在一个过度杠杆化的市场,当你正在做多加密货币价格,当你遭到意外打击时,很多人没有办法绕过它.

1900/1/1 0:00:00
USD:分析 USDT 爆雷的可能性

USDT 会爆雷吗?最近传出有避险基金在大量做空USDT,规模达到数亿美金。这篇来分析下 USDT 爆雷的可能性.

1900/1/1 0:00:00
WOR:如何正确看待熊市?接下来会发生什么?

你已经意识到自己正处于熊市中。在过去的几周/几个月里,您可能损失的钱比很长一段时间以来的损失都要多.

1900/1/1 0:00:00
区块链:如何确定购买哪些 NFT:必读指南

转自:老雅痞买卖NFT最具挑战性的因素之一是找到合适的购买对象。为你的收藏选择完美的NFT可以像浏览市场一样简单,寻找你喜欢的艺术(很像在亚马逊上浏览物品)。这是许多人在NFT世界中开始的地方.

1900/1/1 0:00:00