By: Lisa
距上次披露 “相同尾号空投骗局” 没多久,近日,我们又在用户的反馈下捕捉到一种很相似的手法。
根据多名用户的反馈,用户在 TRON 上的地址转账记录中不断出现陌生地址转账 0 USDT,而这笔交易均是通过调用 TransferFrom 函数完成的。
(图 1)
随意点进一笔交易查看详情,如图 1 红框第一笔 tx 为 701e7 的交易:
(图 2)
这笔交易是 TCwd 开头的地址调用 TransferFrom,将 0 USDT 从以 TAk5 开头的地址转到以 TMfh 开头的地址。
也就是说,罪魁祸首是以 TCwd 开头的地址,我们去看下这个地址的情况:
(图 3)
可以看到,这个地址在疯狂地批量调用 TransferFrom。
接着,我们看看此地址在 USDT 的转账情况。
(图 4)
几乎全是转出 0.001 数额的记录。这让我想起了尾数相同空投骗局也曾出现过类似的情况。也就是说,这个以 TCwd 开头的地址可能是作为主地址之一,将 0.001 分发到不同的地址,而这些不同的地址都有可能是攻击者用来空投的地址。我们选择地址 TMQy...6ZRMK 进行验证:
(图 5)
USDT 接收地址都是 TADXT...Lhbuo,再往下追溯:
(图 6)
从图 6 其实可以发现,地址 TADXT...Lhbuo 曾经与 TMQ...QZRMK 地址有过 2 笔正常转账,而攻击者利用尾号 ZRMK 相同不断空投小额 USDT。也就是说,这个用户不仅遭受尾号相同的空投骚扰,也遭受着本文提到的 0 转账骚扰。那也可以认为,这两种相似手法的背后是同一个团伙。
经过对该手法的分析,究其原因主要是代币合约的 TransferFrom 函数未强制要求授权转账数额必须大于 0,因此可以从任意用户账户向未授权的账户发起转账 0 的交易而不会失败。恶意攻击者利用此条件不断地对链上活跃用户发起 TransferFrom 操作,以触发转账事件。
我们不禁猜想,除了 TRON 上,在以太坊上会出现同样的情况吗?
于是我们在以太坊上进行了一个小小的测试。
(图 7)
测试调用成功,在以太坊上这个规则同样适用。
不免想象到,如果用户发现了非自己转账的记录,可能会因此产生自己钱包是不是被盗的恐慌情绪,当用户去尝试更换钱包或者重新下载钱包,会有被骗被盗的风险;另一方面,用户的转账记录被攻击者“霸屏”,可能会因为复制错误转账地址而导致资产丢失。
慢雾在此提醒,由于区块链技术是不可篡改的,链上操作是不可逆的,所以在进行任何操作前,请务必仔细核对地址,同时,如果发现地址出现异常转账情况,请务必警惕并冷静检查,如有需要可以联系我们。
Ps. 感谢 imToken 安全团队的协助。
相关代码链接:
https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#code
https://tronscan.org/#/token20/TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t/code
往期回顾
智能合约安全审计入门篇 —— Phishing with tx.origin
慢雾 | 智能合约安全审计服务全面增加 Move 安全审计项
慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾 GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
知识星球
https://t.zsxq.com/Q3zNvvF