慢雾:TreasureDAO NFT交易市场「零元购」漏洞分析_NFT:TREASURE

2022年03月03日,据慢雾区消息,TreasureDAO的NFT交易市场被曝出严重漏洞,TreasureDAO是一个基于Arbitrum上的NFT项目。目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:相关信息

合约地址TreasureMarketplaceBuyer:0x812cda2181ed7c45a35a691e0c85e231d218e273TreasureMarketplace:0x2e3b85f85628301a0bce300dee3a6b04195a15ee漏洞细节分析

慢雾:针对macOS系统恶意软件RustBucket窃取系统信息:金色财经报道,SlowMist发布安全警报,针对macOS 运行系统的 Rust 和 Objective-C 编写的恶意软件RustBucket,感染链由一个 macOS 安装程序组成,该安装程序安装了一个带后门但功能正常的 PDF 阅读器。然后伪造的 PDF 阅读器需要打开一个特定的 PDF 文件,该文件作为触发恶意活动的密钥。[2023/5/23 15:20:27]

1.用户通过TreasureMarketplaceBuyer合约中的buyItem函数去购买NFT,该函数会先计算总共需要购买的价格并把支付所需的Token打入合约中,接着调用TreasureMarketplace合约中的buyItem从市场购买NFT到TreasureMarketplaceBuyer合约,接着在从TreasureMarketplaceBuyer合约中把NFT转给用户。

慢雾:pGALA合约黑客已获利430万美元:11月4日消息,安全团队慢雾在推特上表示,pGALA合约黑客已将大部分GALA兑换成13,000枚BNB,获利超430万美元,该地址仍有450亿枚Gala,但不太可能兑现,因为资金池基本已耗尽。此外,黑客的初始资金来自几个币安账户。

今日早些时候消息,一个BNB Chain上地址在BNB Chain上地址凭空铸造了超10亿美元的pGALA代币,并通过在PancakeSwap上售出获利。pNetwork表示此为跨链桥配置错误所致,GALA跨链桥已暂停,请用户不要在BNB Chain上DEX中交易pGALA。[2022/11/4 12:16:04]

慢雾:Transit Swap事件中转移到Tornado Cash的资金超过600万美元:金色财经报道,慢雾 MistTrack 对 Transit Swap 事件资金转移进行跟进分析,以下将分析结论同步社区:

Hacker#1 攻击黑客(盗取最大资金黑客),获利金额:约 2410 万美元

1: 0x75F2...FFD46

2: 0xfa71...90fb

已归还超 1890 万美元的被盗资金;12,500 BNB 存款到 Tornado Cash;约 1400 万 MOONEY 代币和 67,709 DAI 代币转入 ShibaSwap: BONE Token 合约地址。

Hacker#2 套利机器人-1,获利金额:1,166,882.07 BUSD

0xcfb0...7ac7(BSC)

保留在获利地址中,未进一步转移。

Hacker#3 攻击模仿者-1,获利金额:356,690.71 USDT

0x87be...3c4c(BSC)

Hacker#4 套利机器人-2,获利金额:246,757.31 USDT

0x0000...4922(BSC)

已全部追回。

Hacker#5 套利机器人-3,获利金额:584,801.17 USDC

0xcc3d...ae7d(BSC)

USDC 全部转移至新地址 0x8960...8525,后无进一步转移。

Hacker#6 攻击模仿者-2,获利金额:2,348,967.9 USDT

0x6e60...c5ea(BSC)

Hacker#7 套利机器人-4,获利金额:5,974.52 UNI、1,667.36 MANA

0x6C6B...364e(ETH)

通过 Uniswap 兑换为 30.17 ETH,其中 0.71 支付给 Flashbots,剩余 ETH 未进一步转移。[2022/10/6 18:41:10]

2.在TreasureMarketplace合约中:

慢雾:PREMINT攻击者共窃取约300枚NFT,总计获利约280枚ETH:7月18日消息,慢雾监测数据显示,攻击PREMINT的两个黑客地址一共窃取了大约300枚NFT,卖出后总计获利约280枚ETH。此前报道,黑客在PREMINT网站植入恶意JS文件实施钓鱼攻击,从而盗取用户的NFT等资产。[2022/7/18 2:19:58]

可以发现若传入的_quantity参数为0,则可以直接通过require(listedItem.quantity>=_quantity,"notenoughquantity");检查并进入下面的转移NFT流程,而其中没有再次对ERC-721标准的NFT转移进行数量判断,使得虽然传入的_quantity参数虽然为0,但仍然可以转移ERC-721标准的NFT。而计算购买NFT的价格的计算公式为totalPrice=_pricePerItem*_quantity,因此购买NFT的价格被计算为0,导致了在市场上的所有ERC-721标准的NFT均可被免费购买。攻击交易分析

此处仅展示一个攻击交易的细节,其余攻击交易的手法都一致,不再赘述。攻击交易:https://arbiscan.io/tx/0x82a5ff772c186fb3f62bf9a8461aeadd8ea0904025c3330a4d247822ff34bc02攻击者:0x4642d9d9a434134cb005222ea1422e1820508d7b攻击细节:

可以从下图中看到,攻击者调用了TreasureMarketplaceBuyer合约中的buyItem函数,并使传入的_quantity参数为0。

可以看到Token转移均为0,攻击者并没有付出任何成本就成功购买了tokenID为3557的NFT,整个攻击流程与上面的漏洞细节分析中所讲的一致。总结

本次漏洞的核心在于进行ERC-721标准的NFT转移前,缺少了对于传入的_quantity参数不为0的判断,导致了ERC-721标准的NFT可以直接被转移且计算价格时购买NFT所需费用被计算成0。针对此类漏洞,慢雾安全团队建议在进行ERC-721标准的NFT转移前,需对传入的数量做好判断,避免再次出现此类问题。

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

金宝趣谈

BNB复刻Curve战争,撰写DeFi3.0新叙事_EFI:DEF

简介 经济学大多倾向于这样一种观点,即市场参与者几乎在所有时刻都在理性行事。虽然经济模型有时可能会反映出与行为者最佳利益的微小偏差,但它们没有考虑到这些非理性行为的频率.

[0:15ms0-4:324ms