NFT:NFT 借贷平台 XCarnival 被盗3000 ETH 事件分析

NFT借贷平台@XCarnival_Lab大约7个小时之前被黑了,至少有3000个$ETH被盗。下面是该事件的简要分析:

该NFT借贷平台的合约有个bug:作为抵押品的NFT在取出后,其orderID仍然可用,可以此申请贷款。

有三个相关合约:xETH,钱在这里main.https://etherscan.io/address/0xb38707e31c813f832ef71c70731ed80b45b85b2d……?

?xNFT,NFT管理器.https://etherscan.io/address/0xb14b3b9682990ccc16f52eb04146c3ceab01169……?

报告:Cardano现已成为交易量第三大NFT协议:金色财经报道,据DappRadar的报告显示,按交易量计算,Cardano现已成为第三大NFT协议。在截至9月30日的30个期间内,该Cardano的NFT总交易量达到1.91亿美元,仅次于以太坊和Solana,Cardano最大NFT市场本季度的交易量增长了40%,仅该平台交易量就达到了1120万美元。[2022/10/30 11:58:16]

?P2Controller,很多借贷限制条件的验证者.

黑客https://etherscan.io/address/0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a…从Tornado中拿出了干坏事的启动资金.然后在OpenSea上购买了#BAYC5110。

August Sander摄影NFT系列因版权争议被退市,发布者将提起诉讼:金色财经消息,August Sander的曾孙Julian Sander想通过OpenSea将他曾祖父的标志性照片带到区块链上,该系列将构成这位标志性摄影师的总档案,有10,700张照片,这些NFT将免费赠送,用户只需支付gas费。Julian的目标是“在区块链上保护August Sander的遗产”。

该项目于2月10日启动,由Julian领导的August Sander家族庄园经营,在几周内,超过400 ETH在OpenSea的二级销售中进行了交易。

August的孙子Gerd(Julian的父亲)曾将这些照片作为收藏品卖给了SK Stiftung Kultur,SK将这些权利保留到了2034年,并向OpenSea发出了下架通知,OpenSea发出声明并于3月7日暂停了销售。

Julian表示该声明无效,肯定会去法院查明这些NFT版权的真正所有者是谁。

August Sander是一位出生于1876年的德国人像摄影师,他曾被描述为“20世纪初最重要的德国人像摄影师”。(nftevening)[2022/5/8 2:58:06]

他部署了一个总控合约0xf706…ca8dhttps://etherscan.io/address/0xf70f691d30ce23786cfb3a1522cfd76d159aca8d……,该合约生成了很多用来当女巫用同一个NFT进行借贷的马仔合约,比如0x5338…3714https://etherscan.io/address/0x53386a82e55202a74c6d83c7eede7a80ba553714…….

NFT Worlds发布路线图2.0白皮书:4月21日消息,NFT Worlds 在其社交平台发布路线图 2.0 白皮书。白皮书针对其生态 Token WRLD 的经济学进行了完善,并计划在第二和第三季度继续提高游戏的可玩性,并增强游戏的社交属性。[2022/4/21 14:38:07]

首先,总控将BAYC转给某个马仔。马仔然后调用xNFT中的pledgeAndBorrow()函数,抵押品为BAYC,但什么也没贷。本步骤生成了一个orderID(43)。

本Tx中可以看到这些过程,不过只有internaltransaction。如果想详细解读得自己深挖调用栈。马仔5338然后取出刚才抵押的NFT,并还给总控。总控再把NFT给别的马仔。如此左手倒右手循环,黑客搞出了几十个orderID,之后可作为借款凭证。而有bug的xNFT并没有在取出抵押物后撤销凭证orderID。

“华尔街之狼”发推表示已加入NFT热潮:10月26日消息,“华尔街之狼”Jordan Belfort发推成已经加入了NFT热潮,并不打算离开这个领域。Jordan Belfort以42.3万美元的价格购买Cryptopunk#6033,并将其作为推特头像。据悉,他曾在几年前利用一切机会抨击加密货币,疫情和各国政府对加密货币采取的行动使他改变了态度,并预测比特币将达到10万美元高度。[2021/10/26 20:58:39]

下一步,总控让所有马仔依次从xETH合约里借钱。攻击完成。黑客用空气借走了真金白银。这是其中一个tx。

上面的是大概过程。再来看下细节。在xNFT合约中,withdrawNFT()并咩有在取出后消除orderID。当P2controller调用getOrderDetail()时还是能取到这个ID。

在xETH中,borrow()会调用borrowInternal()然后调用controller.borrowAllowed()来验证orderID是否有效。

这个是P2controller的borrowAllowed()函数。首先会问xNFT.getOrderDetail(),这个肯定过。还有其他各种限制,但没有一个好使,我在代码评论中有分析。注:黑客之所以要多个马仔合约是因为这里最下面有一个对单个orderID的借贷数量的限制。

总结:抵押物在取出后还有效,这是一个非常简单粗暴肤浅的合约bug。下面这张图是这些错综复杂的内部调用的清晰的调用栈。想不借助工具裸眼分析如果看麻了可以参考下图。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

FIL币比特币:消失的比特币之狼:人死了 钱没了?

阴谋论无处不在。“糟了!”邹童感觉脑袋里的血液一下子流空,脸色变得煞白。房间里拉着窗帘,漆黑一片。坐在电脑前的他,穿着件皱巴巴的衬衣,头发非常油腻,微微肿胀的眼球直盯着屏幕.

[0:0ms0-1:18ms