用途:Ghost Bits(Cast Attack)是 Java 专用的注入使能原语,不是独立漏洞类别。当目标同时具备 Java 后端、前置 WAF/IDS,且菜单上存在 SQLi、反序列化 RCE、文件上传、路径穿越、CRLF、请求走私、SMTP 注入等攻击面时,可先尝试 Ghost Bits 变体载荷,再判断是否被拦截。根因是 Java 把 16 位 char 窄化为 8 位 byte 时静默丢弃高 8 位:WAF 看到无害 Unicode 字符,后端还原出原始 ASCII 攻击字节。
主要能力:覆盖三类根因——A 真实高位截断((byte)ch、ch & 0xFF、OutputStream.write(int)、DataOutputStream.writeBytes 等);B 位运算折叠(如 Jetty TypeUtil.fromHexDigit 无范围检查,%2> 被解析为 %2E);C 宽松 Unicode 规范化(Fastjson Character.digit、Jackson charToHex 按低 8 位查表、全角归一化)。提供字符生成公式 c = chr((k << 8) | T),每个危险字节有 255 个候选字符;并给出危险字节到 Ghost 字符的映射表(如 阮=U+962E 对应 '.'、陪=U+966A 对应 'j'、严=U+4E25 对应 '%')。
使用方式:按组件套用载荷配方,包括 Tomcat RFC2231Utility 文件名上传 Webshell、Apache Commons BCEL ClassLoader RCE、Jackson charToHex SQLi 走私、Fastjson \u 与 \x 转义绕过、Spring/Jetty/Undertow/Vert.x URL 解码、Angus Mail/Jakarta Mail SMTP 注入、Apache HttpClient <= 4.5.9 请求走私、JDK HttpServer 响应拆分,以及 Lettuce、Jodd、XMLWriter、ActiveJ、Vert.x 等同类 sink。另含 Openfire CVE-2023-32315 等已知 CVE 的绕过配方。
限制:需存在实际窄化代码路径;应避开代理区 0xD800–0xDFFF;建议轮换 k 值以对抗基于签名的学习;完整版本矩阵与载荷骨架见 PAYLOAD_COOKBOOK.md。