BUY:TreasureDAO攻击事件分析_REM

安全实验室?监测到?Arbitrum?上?TreasureDAO?的NFT交易市场出现多次异常交易,黑客通过漏洞免费获取交易市场中部分NFT。知道创宇区块链安全实验室将对本次事件深入跟踪并进行分析。

事件分析

基础信息

攻击交易哈希:0x57dc8e6a28efa28ac4a3ef50105b73f45d56615d4a6c142463b6372741db2a2b

TreasureMarketplace:0x2E3b85F85628301a0Bce300Dee3A6B04195A15Ee

唱片制作人DJ Premier将于4月28日在Nifty Gateway发行NFT:4月27日,Nifty Gateway发推宣布,美国嘻哈歌手、唱片制作人DJ Premier将于4月28日发行他的NFT。[2021/4/27 21:02:38]

TreasureMarketplaceBuyer:0x812cdA2181ed7c45a35a691E0C85E231D218E273

攻击流程

攻击者调用?TreasureMarketplaceBuyer?合约的?buyItem?函数进行购买NFT的操作,但是我们从InputData中可以看出攻击者传入的?_quantity?参数为0。虽然传入的购买NFT数量为0,但是攻击者依然成功的获得了一枚编号为的NFT,且TokensTranferred中并未进行代币转移。

Gate.io首发项目DORA上线1h最高涨幅751.4%:据Gate.io芝麻开门行情显示,Gate.io首发项目Dorayaki(DORA)于今日下午17:00正式开盘交易,上线1小时内最高涨幅达751.4%,最高价格29.799美元,当前价格为24.800美元。近期行情波动较大,请注意控制风险。[2021/3/23 19:10:48]

攻击核心

根据上述分析,问题核心可能出现在TreasureMarketplaceBuyer?合约的buyItem?函数。跟进分析后发现,用户调用该函数后合约首先计算出用户购买此NFT的价格,根据购买数量计算出总的价格并将所需支付的代币转入合约;然后调用?TreasureMarketplace?的?buyItem?将用户需要购买的NFT从Marketplace购买到TreasureMarketplaceBuyer?最后将NFT发送到用户账户。观察合约43-46行发现对ERC-721标准的NFT转移并未对其进行数量判断,若此时的?_quantity?为0,用户依然会收到NFT。

Gate.io上线AVAX永续合约交易(USDT结算):据官方消息,Gate.io已上线上AVAX(Avalanche)永续合约实盘交易(USDT结算),支持1-20倍做多和做空操作,杠杆率可以在下单时自行选择。Gate.io永续合约是全球最活跃的区块链资产合约市场之一,日交易量高达8亿美金,结算类型分为“BTC结算永续合约”和“USDT结算永续合约”两种。详情点击原文链接。[2020/9/22]

跟进?TreasureMarketplace?的?buyItem?函数发现,合约从市场回购NFT时只需完成listedItem.quantity>=_quantity?的限制条件后便开始转移NFT到TreasureMarketplaceBuyer合约,若此时的?_quantity为0,依然会转移NFT到TreasureMarketplaceBuyer中。

根据上述分析后发现,当攻击者调用?TreasureMarketplaceBuyer?合约的?buyItem?函数进行购买NFT时,若参数_quantity值为0,由于合约并没有对NFT转移数量的判断,且计算价格?totalPrice=_pricePerItem*_quantity?结果为0,最后导致攻击者能够免费获取该交易市场中ERC-721标准的NFT。

总结

这次攻击产生的主要原因是项目方对NFT转移数量并未做足够的判断,且并未考虑到购买数量为0的恶意购买行为。知道创宇区块链安全实验室?在此提醒,任何有关代币转移的操作都需要慎重考虑,合约审计、风控措施、应急计划等都有必要切实落实。

参考链接:

knownseclab.com

knownseclab.com/hacked-archive

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

大币网

[0:0ms0-3:790ms