feat(huya): wupData信封规则定论 - 原nonce必带/t3-cred一致/session不可动 + 交接文档更新
This commit is contained in:
@@ -324,3 +324,30 @@ App渠道(WUP)对新账号返回 pt_auth.html(aq.huya.com,param=加密token),
|
||||
= 与 core/huya/verification/solver.py 已实现的 udbrtt get3->verify3 闭环同源!
|
||||
(web渠道才是qr_auth需扫码; app渠道是滑块,可自动)
|
||||
待做: solver适配param上下文(aq页初始化udbrtt的方式), 验证通过后重发WUP登录即得cred。
|
||||
|
||||
## ★ 信封规则定论(v2紧凑窗口对照实验, 2026-08-25夜)
|
||||
|
||||
工具: tools/envelope_forge.py(TAF原位补丁) + scripts/probe_envelope_rules2.py。
|
||||
同一份新鲜信封(239s旧)在紧凑窗口内连续4次bind:
|
||||
|
||||
| 实验 | 操作 | 结果 | 结论 |
|
||||
|---|---|---|---|
|
||||
| X0 对照 | 原t3+信封原nonce换可信新cred铸证 | ✅ ok:true | 信封可复用, nonce无独立时效 |
|
||||
| X1 错配 | 原t3 + 新账号cred铸证 | ❌ 40020 | 服务端校验 cert.cred↔t3.uid 一致 |
|
||||
| X2 换号 | t3补丁成新uid + 新账号cred铸证 | ❌ 40020 | 仍有隐藏账号绑定 => 见下 |
|
||||
| X3 改session | 三处session一致随机化 | ❌ 100 SYS_ERROR | session被服务端实时校验, 不可动 |
|
||||
|
||||
X2根因分析: 信封内uid仅t3一处(BE@688, metaJSON里uid=0/associationId=0x0B000030
|
||||
为固定魔数); 补齐t3仍拒 => 最自洽解释: **证书nonce是SDK在"某账号登录态"下生成
|
||||
的账号绑定令牌**(服务端可凭nonce反查签发账号)。与d29290a终局"新nonce成功"不矛盾
|
||||
(那次同为可信账号自用)。
|
||||
|
||||
工程铁律(修正早前"短TTL"误判):
|
||||
1. 铸证必须【复用信封原证书的rnd/指纹/key_idx】, 仅替换cred字段 —— 纯随机nonce必40020;
|
||||
2. t3.uid 必须与 cert 内 cred 所属账号一致;
|
||||
3. session三处(iRequestId/metaJSON/v0尾4B)保持原值, 不可随机化;
|
||||
4. 同账号信封长期复用(X0@239s✅; 数小时前老信封E-B未单独验证但无失败证据);
|
||||
5. 跨账号 = 每号设备首登一次(hook_cert_keycap自动抓该号信封)后永久纯Python。
|
||||
|
||||
safe_auth闭环(app_login_flow.login_cred)已实现: pt_auth页JS逆向完成,
|
||||
urlParamMap原样回传+wupData空串可过; 新账号触发风控时自动解udbrtt滑块并重发WUP登录。
|
||||
|
||||
Reference in New Issue
Block a user