技术地图:Java Web 安全
技术地图:Java Web 安全
本笔记由 agent 长期维护。结构:攻击面 → 手法族(含演进脉络)→ 具体技术。
跨领域模式见 theme-semantic-gap-weaponization。
技术地图
- 认证与信任边界:
- 多层语义缝隙族:认证不再是被"攻破"的墙,而是各层假设之差(规范化工
具、过滤器正则、dispatcher 配置、JWT 实现):- pre-auth-rce-enterprise-java-bonita-ofbiz — BadBonita:
..;规范化
差异 +find()≠matches()+ FORWARD 不设防,三缝叠加打到未认证 XStream;
SSOnOf(a)biz:硬编码 JWT 密钥 +areaTargetclaim 直入 Groovy eval,
两个 GET 完成零凭证 RCE
- pre-auth-rce-enterprise-java-bonita-ofbiz — BadBonita:
- 组件层差异救活应用层漏洞族(跨领域,见 litellm-starlette-badhost-unauth-rce
与 theme-semantic-gap-weaponization)
- 多层语义缝隙族:认证不再是被"攻破"的墙,而是各层假设之差(规范化工
- 表达式/模板引擎(SSTI):
- 沙箱逃逸谱系:经典 payload(Execute/ObjectConstructor/JythonRuntime)→
引擎封堵(SAFER_RESOLVER、?api 关闭、unsafeMethods 黑名单)→ 宿主暴露
对象成为新逃逸面(沙箱安全性由暴露对象里最弱的那个决定):- freemarker-jeecgboot-sandbox-escape-aviator — 审计 JimuReport 暴露进
模板上下文的对象,借 Aviator 求值原语跳出方法级沙箱(JeecgBoot RCE);
含 FreeMarker 1999–2026 攻防四阶段时间线
- freemarker-jeecgboot-sandbox-escape-aviator — 审计 JimuReport 暴露进
- 表达式注入到 RCE 族:OGNL/SpEL/MVEL/Groovy 待补(OFBiz 的
FlexibleStringExpander → Groovy eval 为现有样例,见
pre-auth-rce-enterprise-java-bonita-ofbiz)
- 沙箱逃逸谱系:经典 payload(Execute/ObjectConstructor/JythonRuntime)→
- 反序列化:
- sink 迁移族:公共组件 gadget(CC/CB/Hessian/Fastjson,已被翻烂)→
垂直业务 SDK 的序列化边界(防御基线未覆盖的地带):- fabric-sdk-java-deserialization-gadget — fabric-sdk-java
deSerializeChannel直接 readObject,gadget 在 SDK 自带依赖里现挖
- fabric-sdk-java-deserialization-gadget — fabric-sdk-java
- XStream 族:AnyTypePermission 配置下的未认证反序列化仍存活(Bonita
链的终点 sink,见 pre-auth-rce-enterprise-java-bonita-ofbiz)
- sink 迁移族:公共组件 gadget(CC/CB/Hessian/Fastjson,已被翻烂)→
- 内存马:待补(Filter/Servlet/Agent 型注入与查杀对抗)
- JNDI 与加载原语:待补
技术高地
- 当前 SOTA:信任边界工程学——不找新 sink,而是系统性枚举"同一请求在
各层的语义差异"并武器化。Novee Security(Black Hat USA 2026)做到 12 漏洞 ×
4 平台、两条件零凭证 RCE,是当前工程化程度最高的公开工作;其副产物是一个
可复用的审计框架(对每层分别回答"它认为这个请求是什么")。 - 代表工作:Novee Security(BadBonita/SSOnOf(a)biz);先知社区(沙箱逃逸
转向暴露面审计:freemarker-jeecgboot-sandbox-escape-aviator、垂直 SDK
sink:fabric-sdk-java-deserialization-gadget)。 - 方向判断:Java 生态的显式 sink(XStream/Groovy/反序列化)已被翻烂,两股
前沿在朝"间接面"走——组件间缝隙(信任边界)和授权给攻击者的间接原语
(暴露对象、垂直 SDK)。预测:未来半年"沙箱配置正确但宿主对象逃逸"和
"垂直 SDK/私有依赖里的 sink"类披露会明显多于"公共组件新 gadget";同时
防御标准化(路由保护默认化、规范化统一)会先在 Java 生态出现,绕过认证
环节变难后,同类研究将移向非 Java 平台。 - 防御推论:边界防护"分发方式无关"(REQUEST/FORWARD/ERROR 全覆盖、
denied-by-default 路由);模板/反序列化暴露面审计覆盖全量 classpath 而非
引擎白名单;SDK 引入要过"字节流反序列化入口"检查。
相关线索: pre-auth-rce-enterprise-java-bonita-ofbiz,
freemarker-jeecgboot-sandbox-escape-aviator, fabric-sdk-java-deserialization-gadget