链资讯 链资讯
Ctrl+D收藏链资讯

ITEM:怪事?盗了又归还?TreasureDAO安全事件分析_SURE

作者:

时间:

3月3日,成都链安链必应-区块链安全态势感知平台舆情监测显示,基于 Arbitrum 的 TreasureDAO NFT 交易市场被曝发现漏洞,导致100多个NFT被盗,令人意外的是,在事件发生几小时后,攻击者却开始归还被盗NFT(猜不透攻击者的心思)。关于本次事件,成都链安技术团队第一时间进行了分析。

总述

交易发起地址利用TreasureMarketplaceBuyer合约中存在的逻辑缺陷,通过该合约的buyItem函数的_quantity参数能够置零且不影响ERC-721代币交易的漏洞,将totalPrice置零从而无代价获取ERC-721代币。

交易发起地址:

Arbitrum:0x9b1acd4336ebf7656f49224d14a892566fd48e68

被攻击的合约:

Arbitrum:0x812cda2181ed7c45a35a691e0c85e231d218e273

攻击交易:

Arbitrum:0x57dc8e6a28efa28ac4a3ef50105b73f45d56615d4a6c142463b6372741db2a2b

在Arbitrum上,交易发起者通过TreasureMarketplaceBuyer合约的buyItem函数传入了数值为0的_quantity参数,从而无偿购买了TokenID为5490的ERC-721代币。(仅以此次交易为例)

?交易详情

从代码上来看,TreasureMarketplaceBuyer合约的buyItem函数在传入_quantity参数后,并没有做代币类型判断,直接将_quantity与_pricePerItem相乘计算出了totalPrice,因此safeTransferFrom函数可以在ERC-20代币支付数额只有0的情况下,调用TreasureMarketplace合约的buyItem函数来进行代币购买。

TreasureMarketplaceBuyer 合约的?buyItem函数代码

但是在调用TreasureMarketplace合约的buyItem函数时,函数只对购买代币类型进行了判断,并没有对代币数量进行非0判断,导致ERC-721类型的代币可以在无视_quantity数值的情况下直接购买,从而实现了漏洞攻击。

TreasureMarketplace的buyItem函数代码

涉及的代币资产:

总结建议

本次安全事件主要原因是ERC-1155代币和ERC-721代币混用导致的逻辑混乱,ERC-721代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,最后在代币转账时也没有进行分类讨论。

建议开发者在开发多种代币的销售贩卖合约时,需要根据不同代币的特性来进行不同情况的业务逻辑设计。

标签:ITEMTREASUREREASUREITEM价格Bitball TreasureBlock Creaturesnsure币为什么起不来

中币交易所热门资讯
NFT:警惕NFT被DeFi玩坏_WEB3

近期,NFT+DeFi再次掀起热潮,不少新的玩法涌现。根据国外加密货币犯罪和反报告,"DeFi将是欺诈和的下一个主要威胁媒介".

PUN:Punk 6529:从邓巴数到NFT成为乃至如全球文化对象的畅想_Cryptofi

我将分享我自己关于如何思考文化对象的框架——6529 COF(文化对象框架)。它不对也不错,像所有的框架一样,它只是一个工具.

MEME:收益聚合器Dot.Finance遭闪电贷攻击 PINK短时急跌35%_dogenft

DeFi 收益聚合器 Dot.Finance 遭受闪电贷攻击,PeckShield「派盾」第一时间定位并分析发现,此次攻击是 PancakeBunny 的同源攻击.

MEME:DeFi 奶王是怎样炼成的_Genesis NFT

"从 Pickle、Cream、Cover、Keep3r,再到昨日宣布被并购的 Sushi ,AC 被称币圈?「李佳琦」。一系列并购的背后,AC「集团」的 DeFi 王国已然露出了冰山一角.

EFI:作为Solana生态首个AMM Raydium 挖矿一定不能错过_uniswap币总量

免责声明 本篇文章的内容仅供学习,不能作为实战使用。看完本文章后,你的任何尝试都与博主本人无关,盈亏自负,也请为自己的交易负责.

NFT:传统创业者如何在NFT 领域开展业务_BAKC Vault (NFTX)

本文由公号“老雅痞”laoyapicom授权转载如果你是一个希望开始创建和销售NFTs业务的企业家,在你进入这个新市场之前,有一个坚实的知识基础是很重要的.