type-confusion · git:20260915.d2c52f2 · 2026-09-15 · sha256 8b0527f0faba83ce
type-confusion git:20260915.d2c52f2A
Immutable. This exact content is served forever at /api/v1/blob/8b0527f0faba83ce.
--- name: type-confusion description: > Analyze weak comparison, coercion, numeric precision, Unicode narrowing, and cross-language serialization differences when type conversion may alter a security decision. metadata: tags: "type-confusion,type-juggling,coercion,unicode,precision" --- # Type Confusion ## Goal 恢复各解析层的真实类型与转换顺序,判断弱比较、精度丢失、字符窄化或跨语言序列化能否改变认证、签名、路由或对象选择。 ## Tools / Inputs - 源码/错误指纹、JSON/form 参数、目标语言版本、签名/哈希比较、网关与后端类型差分 - 资源索引:`references/INDEX.md`;候选资源:`type-confusion-testing.md`、`crypto-analysis.md` ## Constraints 1. 必须按目标语言和版本本地复现转换语义,不能套用跨版本结论。 2. 每次只改变值、容器类型、编码或数值表示中的一个维度。 3. 哈希外形、异常或状态码差异只是线索,必须证明安全分支改变。 4. 高位字符和 Unicode 变体只用于自建对象与无害标记。 5. 将解析器、比较运算和最终授权结果作为完整证据链。 ## Chain Questions - 每一层看到的是字符串、数字、布尔、null、数组还是对象? - 解析、规范化、哈希、比较和授权的先后顺序是什么? - 精度、符号、Unicode 或窄化转换是否让不同输入变成同一安全标识? - 结果能否实际绕过认证、签名、路径、文件名或对象边界?