主页 > imtoken钱包官网客服 > 一对一假充值漏洞
一对一假充值漏洞
活动介绍
6月28日晚间,某安全机构针对USDT发布预警及漏洞分析,同时提醒各大交易所尽快暂停USDT充值功能,并检查自身代码是否存在逻辑漏洞缺陷。 “虚假充值”是指用户向交易所充值USDT时不会丢失自己的USDT,这些充值的USDT可以正常使用。
同时,今年6月11日怎么查usdt地址余额,有用户发现门罗币存在假充值漏洞,并在门罗币的GitHub仓库提交了相关问题。
漏洞介绍
泰达币
攻击者利用交易所USDT交易充值判断逻辑的缺陷,恶意虚假转账获取交易所代币。 USDT本身没有问题。
我们以Omniexplorer提供的素材为例。
这个过程用一个无效交易的例子来说明。
地址:1b5c80f487d2bf8b69e1bbba2b1979aacb1aca7a094c00bcb9abd85f9af738ea
()
这个无效交易发生在 Omniexplorer 上。 Omin采用的数字资产转账方式为Simple Send。
他的计费模型是基于地址的。 通过地址查询交易者的余额,并与交易发送的地址进行比对。 如果余额小于发送的金额,交易将被标记为无效。
同时怎么查usdt地址余额,余额的校验是通过Omni客户端进行的,但是Omni没有UTXO机制,导致无效交易也可以广播。
使用场景
1、用户发起恶意USDT充值行为;
2. 黑客绕过检查系统生成恶意交易并广播;
3、交易由比特币区块链确认(Omni核心钱包基于比特币);
4.交易所检查交易数量(绕过余额检查);
5、交易完成;
6. 用户发起提现。
门罗币
首先我们来看一下官方的修复代码
检查交易的公钥是否已经存在,如果存在则拒绝交易。
在添加这段代码之前,Monero客户端的show_transfers命令不会跳过重复交易,重复交易金额也会被计算。
也就是说,当攻击者交易所充值地址发送多次重复交易时,如果交易所验证不严谨,没有检测真实钱包余额,如果用户充值只是通过show_transfers确认,就会出现虚假充值漏洞,导致交易所充值给用户的余额与交易所自身实际收到的余额不符,攻击者可以假装充值成功后进行消费或提现。
使用场景
将漏洞利用代码插入门罗币的开源代码中,然后编译运行。
攻击者在 Monero 的 cryptonote_tx_utils.cpp 文件的第 354 行插入了大量重复代码。 客户端每发起一次交易,就会向目标发送3次以上的重复交易,从而达到利用该漏洞的目的。
总结:
黑客只需要几行代码就可以完成虚假转账。 出现这种漏洞的原因是交易所没有很好地处理逻辑漏洞。 开发者在代码上线前要注意检查,小心谨慎。 安全无小事。