区块链网站|NFTS 门罗币(XMR) 买一送一假充值漏洞

买一送一假充值漏洞

广告位

充一赠一的假充值漏洞

事件介绍

6月28日晚,某安全机构发布了针对USDT的预警和漏洞分析,同时提醒各大交易所尽快暂停USDT的充值功能,并检查自己的代码是否存在逻辑缺陷。“假充值”是指用户向交易所充值USDT时不会丢失USDT,这些充值的usdt可以正常使用。

同时,今年6月11日,有用户发现门罗币存在虚假充值漏洞,在门罗币GitHub仓库上提交了相关问题。

引入漏洞

USDT

攻击者利用交易所判断充值USDT交易的逻辑缺陷,恶意进行虚假转账,从交易所获取代币。USDT本身没有问题。

我们以Omniexplorer提供的素材为例。

这个过程由一个无效的事务来说明。

地址:1 b5 c 80 f 487 D2 BF 8 b 69 e 1 bbba 2 b 1979 accb 1 aca7a 094 c 00 BC 9 b 9 ad 85 f 9 af 738 ea

(https://omni explorer . info/search/1b 5 c 80 f 487 D2 BF 8 b 69 E1 bbba 2 b 1979 aacb 1 ACA 7 a 094 c 00 BCB 9 Abd 85 f 9 af 738 ea)

这个无效的事务发生在Omniexplorer中。Omin的数字资产转移方法是简单发送。

他的会计模型是基于地址的。通过地址查询交易者的余额,并与交易发送的地址进行比较。如果余额少于发送的金额,交易将被标记为无效。

同时通过Omni客户端查看余额,但Omni没有UTXO机制,导致无效交易被广播。

使用场景

1.用户发起恶意USDT充值行为;

2.黑客绕过检查系统生成恶意交易并广播;

3.交易由比特币区块链(Omni core wallet基于比特币)确认;

4.交易所检查交易数量(绕过余额检查);

5.交易完成;

6.账户发起取款。

门罗硬币

首先,我们来看看官方发布的修复代码。

判断交易的公钥是否已经存在,如果已经存在,则拒绝交易。

在添加这段代码之前,门罗币客户端的show_transfers命令是不会跳过重复交易的,重复交易金额也会被计算。

也就是说,当攻击者的交易所充值地址发送多次重复交易时,如果交易所验证不严谨,没有检测到真实的钱包余额,仅通过show_transfers确认用户充值,就会出现虚假充值漏洞,导致交易所给用户的充值余额与交易所实际收款余额不符,攻击者可以在虚假充值成功后进行消费或提现。

使用场景

将利用代码插入门罗币的开源代码中,然后编译运行。

攻击者在门罗币cryptonote_tx_utils.cpp文件的第354行插入了大量重复代码。客户端每发起一次交易,就会向目标多发送三次重复交易,从而达到利用该漏洞的目的。

总结:

黑客只需要几行代码就能完成假转账。造成此漏洞的原因是exchange没有正确处理逻辑漏洞。开发者应该在代码上线前仔细检查。安全无小事。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/xmr/24735.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部