|
|
 |
|
矿机回收网
联系人:王经理
手机:18994010355 18108888591
微信号: 642849534
电话:025-58763550
网址:http://www.haifakeji.com |
|
 |
| | | | TreasureDAO 攻击事件的跟踪与分析 |
| | 前言
北京时间2022年03月03日,知道创宇区块链安全实验室监测到Arbitrum上TreasureDAO的NFT交易市场呈现屡次异常交易,黑客经过漏洞免费获取交易市场中部分NFT。知道创宇区块链安全实验室将对本次事件深化盯梢并进行剖析。
事件剖析
基础信息
进犯交易哈希:0x57dc8e6a28efa28ac4a3ef50105b73f45d56615d4a6c142463b6372741db2a2b
TreasureMarketplace:0x2E3b85F85628301a0Bce300Dee3A6B04195A15Ee
TreasureMarketplaceBuyer:0x812cdA2181ed7c45a35a691E0C85E231D218E273
进犯流程
进犯者调用TreasureMarketplaceBuyer合约的buyItem函数进行购买NFT的操作,但是咱们从InputData中可以看出进犯者传入的_quantity参数为0。尽管传入的购买NFT数量为0,但是进犯者仍然成功的获得了一枚编号为[5490]的NFT,且TokensTranferred中并未进行代币搬运。
进犯中心
依据上述剖析,问题中心或许呈现在TreasureMarketplaceBuyer合约的buyItem函数。跟进剖析后发现,用户调用该函数后合约首要计算出用户购买此NFT的价格,依据购买数量计算出总的价格并将所需支付的代币转入合约;然后调用TreasureMarketplace的buyItem将用户需求购买的NFT从Marketplace购买到TreasureMarketplaceBuyer最终将NFT发送到用户账户。调查合约43-46行发现对ERC-721规范的NFT搬运并未对其进行数量判别,若此时的_quantity为0,用户仍然会收到NFT。
跟进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的歹意购买行为。知道创宇区块链安全实验室在此提醒,任何有关代币搬运的操作都需求慎重考虑,合约审计、风控办法、应急方案等都有必要切实落实。
{买卖矿机矿机托管上矿机收回网联系电话18108888591}
| | | | |
|
|