JBOSS反序列化的残羹剩饭之CVE-2015-7504、CVE-2013-4810
字数 1239 2025-08-15 21:31:50
JBOSS反序列化漏洞分析:CVE-2015-7504与CVE-2013-4810
0x00 CVE-2015-7504漏洞分析
漏洞背景
CVE-2015-7504影响JBoss AS 4.x及之前版本,存在于JbossMQ实现过程的JMS over HTTP Invocation Layer组件中。
漏洞位置
漏洞具体位于HTTPServerILServlet.java文件中,该文件处理JMS over HTTP的通信。
漏洞代码分析
doGet方法
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 输出内容表明接口可用
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("JMS over HTTP Invocation Layer");
}
关键点:
- 如果访问
/jbossmq-httpil/HTTPServerILServlet路径能得到"JMS over HTTP Invocation Layer"响应,说明接口开放
doPost方法
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 直接调用processRequest方法
processRequest(request, response);
}
processRequest方法
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 关键漏洞点
ObjectInputStream ois = new ObjectInputStream(request.getInputStream());
Object obj = ois.readObject(); // 反序列化漏洞点
// ...后续处理...
}
漏洞原理:
- 直接对用户输入的HTTP请求体进行反序列化操作
- 没有进行任何安全校验或过滤
- 攻击者可构造恶意序列化对象实现远程代码执行
漏洞验证方法
- 访问目标URL:
http://target:port/jbossmq-httpil/HTTPServerILServlet - 如果返回"JMS over HTTP Invocation Layer",则存在漏洞
POC构造与利用
- 使用ysoserial等工具生成恶意序列化payload
- 向目标URL发送POST请求,payload放在请求体中
- 可验证是否成功执行命令(如创建文件等)
0x01 CVE-2013-4810漏洞分析
漏洞背景
该漏洞影响JBoss多个版本,存在于EJBInvokerServlet组件中。
漏洞位置
漏洞位于/invoker/EJBInvokerServlet路径
漏洞原理
- 该servlet接收POST请求后直接读取输入流进行反序列化
- 与CVE-2015-7504类似,都是由于不安全的反序列化操作导致
漏洞验证方法
- 访问目标URL:
http://target:port/invoker/EJBInvokerServlet - 如果返回200状态码或相关响应,则存在漏洞
利用方式
- 构造恶意序列化对象
- 向
/invoker/EJBInvokerServlet发送POST请求 - 在请求体中包含恶意payload
0x02 防御措施
- 升级JBoss版本:升级到不受影响的版本
- 删除或限制访问:
- 删除
jbossmq-httpil和invoker相关组件 - 在防火墙或反向代理中限制对这些路径的访问
- 删除
- 配置安全策略:
- 实现输入验证
- 限制反序列化操作
- 使用安全产品:部署WAF等安全产品拦截恶意请求
0x03 总结
这两个漏洞都是典型的Java反序列化漏洞,共同特点是:
- 直接对用户输入进行反序列化
- 缺乏必要的安全校验
- 可通过构造恶意序列化对象实现RCE
对于安全研究人员,理解这些漏洞有助于:
- 掌握Java反序列化漏洞原理
- 学习如何分析Servlet组件安全
- 提高漏洞挖掘和利用能力