工具项目
The outline of the project is loading
小迪安全知识库
-
+
home
Java幽灵比特位绕过神器
Java幽灵比特位绕过神器
2026年4月,Black Hat Asia 2026大会上,安全研究员Zhihui Chen (1ue) 与 Xinyu Bai (浅蓝)公布了一项影响整个Java生态的底层安全缺陷 — **Ghost Bits (幽灵比特位)**,并将其攻击方式命名为 **Cast Attack**。 该缺陷可让攻击者轻松绕过绝大多数WAF/IDS防护,直接触发SQL注入、反序列化RCE、文件上传、路径穿越、SMTP注入、请求走私等一系列高危攻击,目前POC/EXP已在网络上公开,利用门槛极低,企业必须立刻自查。 项目地址:https://github.com/shiyeshu/GBitsTools **一、什么是幽灵比特位?** Java的char是16位Unicode,而byte是8位。当代码用`(byte)ch`、`ch & 0xFF`、`baos.write(ch)`、`DataOutputStream[#writeBytes](javascript:;)()`这类写法把char强转成byte时,**高8位会被静默丢弃,只保留低8位**。这部分被丢掉的高位数据,就是 “幽灵比特位”。 举个直观例子: ``` 汉字「爻」(U+2F58) 二进制是 00101111 00111010 ``` 攻击者正是利用这一点:把攻击 Payload 里的关键 ASCII 字符,替换成低 8 位相同、但整体是无意义 Unicode 的特殊字符。WAF 看到的是一堆乱码汉字 / 符号,不触发规则;后端 Java 一解码,立刻还原成原始攻击语句,实现**完美绕过**。 研究人员在 GitHub 检索这类典型写法,命中结果超 **8100 条**,说明该缺陷在 Java 生态中**极其普遍**,属于长期被忽视的系统性问题。 **二、到底能造成哪些危害?** Ghost Bits 不是单一漏洞,而是一整套**绕过 + 攻击**组合拳,几乎覆盖 Java Web 全场景: ### 1\. WAF/IDS全面失效 绝大多数基于字符串特征的防护规则,对变形后的 Payload 完全无感,等于 “裸奔”。 2\. 高危漏洞直接触发 * SQL注入:Jackson 的 charToHex 存在ch & 255截断,注入语句藏在 Unicode 里,WAF 无告警,后端直接执行。 * 反序列化RCE:BCEL、fastjson 的转义与解码逻辑存在 Ghost Bits,可绕过 WAF 打远程代码执行。 * 文件上传绕过:Tomcat 处理文件名时高位截断,把.jsp伪装成 Unicode 字符,绕过检测上传木马。 * 路径穿越/认证绕过:Spring、Jetty、Undertow、Vert.x 等 URL 解码存在缺陷,可绕路径校验、越权访问。 * SMTP注入:Angus Mail 等邮件库存在强转缺陷,可注入 CRLF,劫持邮件、绕过业务域名校验,已在 Jira、Confluence 复现。 * HTTP请求走私/XSS:Apache HttpClient(≤4.5.9)、JDK 原生 HttpServer 受影响,可拆分请求、注入恶意响应头。 3\. 历史高危 CVE “复活” 包括但不限于: ``` GeoServer CVE-2024-36401(CVSS 9.8) ``` 现有 WAF 防护规则均可被 Ghost Bits 变体 Payload 绕过,直接打 RCE、越权。 **三、哪些组件在受影响名单里?** 以下主流框架/中间件已确认受Ghost Bits影响:  **四、企业如何快速修复与防护?** 1\. 优先升级官方修复版本 ``` Apache Commons BCEL → 6.12.0 及以上 ``` 其他组件请关注官方安全公告,及时更新。 ### 2\. 代码层根治(最关键) 排查并替换以下高危写法: ``` (byte)ch ``` 统一改为**明确指定 UTF-8 编码**的方式,例如: ``` String.getBytes(StandardCharsets.UTF_8) ``` 3\. WAF 与输入校验加固 * 不要只靠字符串规则,**在解码层做语义检测** * 对 URL、文件名、JSON、邮件地址等做 **Unicode 归一化(NFC/NFKC)** * 严格过滤或限制非 ASCII 字符进入关键参数 ### 4\. 临时缓解 公网暴露的 Java 应用,在彻底修复前,**限制访问来源**,缩小攻击面;内部开展代码审计,批量扫描 Ghost Bits 相关高危代码。 **五、工具复现与自查** GitHub 已出现针对 Ghost Bits 的利用工具**GBitsTools**,基于 Black Hat 议题实现 Payload 生成,支持 GUI/CLI 模式,可快速复现漏洞场景,建议用于内部自检,切勿非法使用。 ``` # 启动图形化界面 (GUI) ```  **推荐使用 Yakit 或 Python 发包,Yakit的HTTP Fuzzer会原样发送请求行,不会对高位字符做规范化。在请求面板中粘贴如下数据包并发送:** ``` GET /阮严灵丰丰甲来/阮严灵丰丰甲来/阮严灵丰丰甲来/阮严灵丰丰甲来/阮严灵丰丰甲来/阮严灵丰丰甲来/阮严灵丰丰甲来/etc/passw%64 HTTP/1.1 ```  漏洞复现环境: https://github.com/vulhub/vulhub/tree/master/spring/CVE-2025-41242 Black Hat Asia 2026议题PPT: https://i.blackhat.com/Asia-26/Presentations/Asia-26-Bai-Cast-Attack-Ghost-Bits-4.23.pdf **六、最后** Ghost Bits 是 Java 生态底层设计与编码习惯长期积累的共性缺陷,影响广、隐蔽性强、利用简单,堪称 2026 年至今最具破坏性的 Web 漏洞之一。 建议所有使用 Java 体系(Spring、Tomcat、fastjson、Jackson 等)的企业,**立即开展资产盘点、代码扫描与组件升级**,避免被批量利用。
xiaodi
April 29, 2026, 3:41 p.m.
248
0 comment
Forward
Favorites
Last
Next
Scan the QR Code
Copy link
Scan the QR code to share.
Copy link
share
link
type
password
Update password
Validity period
Markdown file
Word document
PDF document
PDF document (print)