vulhub漏洞复现-jboss反序列化漏洞复现

一、什么是序列化和反序列化

序列化是将对象转换为字符串以便存储传输的一种方式。而反序列化恰好就是序列化的逆过程,反序列化会将字符串转换为对象供程序使用。在PHP中序列化和反序列化对应的函数分别为serialize()和unserialize()。

二、什么是反序列化漏洞

当程序在进行反序列化时,会自动调用一些函数,例如__wakeup(),__destruct(),_sleep(),_consruct(),_toString()等函数,但是如果传入函数的参数可以被用户控制的话,用户可以输入一些恶意代码到函数中,从而导致反序列化漏洞。

三、反序列化漏洞的利用

由于反序列化时unserialize()函数会自动调用wakeup(),destruct(),函数,当有一些漏洞或者恶意代码在这些函数中,当我们控制序列化的字符串时会去触发他们,从而达到攻击。

举例:

一、序列化

1、在phpstudy-www目录下新建PHP文件,输入:

 

   class S{

        public $test="pikachu";

    }

    $s=new S(); //创建一个对象

    echo serialize($s); //把这个对象进行序列化

    ?>

vulhub漏洞复现-jboss反序列化漏洞复现_第1张图片

2、打开浏览器访问

vulhub漏洞复现-jboss反序列化漏洞复现_第2张图片

靶场漏洞复现:

一、pikachu靶场-反序列化漏洞复现:

1、打开漏洞地址:

vulhub漏洞复现-jboss反序列化漏洞复现_第3张图片

2、输入:O:1:"S":1:{s:4:"test";s:29:"";}

vulhub漏洞复现-jboss反序列化漏洞复现_第4张图片

二、jboss反序列化漏洞

1JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)

漏洞描述

JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。

 影响版本

JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10

JBoss AS (Wildly) 6 and earlier

JBoss A-MQ 6.2.0

JBoss Fuse 6.2.0

JBoss SOA Platform (SOA-P) 5.3.1

JBoss Data Grid (JDG) 6.5.0

JBoss BRMS (BRMS) 6.1.0

JBoss BPMS (BPMS) 6.1.0

JBoss Data Virtualization (JDV) 6.1.0

JBoss Fuse Service Works (FSW) 6.0.0

JBoss Enterprise Web Server (EWS) 2.1,3.0

 漏洞分析

JBoss在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路径。访问若提示下载 JMXInvokerServlet,则可能存在漏洞。

漏洞复现:

访问:http://your-ip:8080/invoker/JMXInvokerServlet提示下载文件,则可能存在漏洞:

vulhub漏洞复现-jboss反序列化漏洞复现_第5张图片

2JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

0x00 漏洞描述

JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

影响版本

JBoss AS 4.x及之前版本

漏洞分析

与CVE-2015-7501的漏洞如出一辙,只是利用的路径稍微出现了变化。该漏洞出现在/jbossmq-httpil/HTTPServerILServlet请求中,若访问200,则可能存在漏洞。

漏洞复现

访问http://your-ip:8080/jbossmq-httpil/HTTPServerILServlet,若出现以下界面,则可能存在漏洞:

vulhub漏洞复现-jboss反序列化漏洞复现_第6张图片

3JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

漏洞描述

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。

影响版本

JbossAS 5.x

JbossAS 6.x

漏洞分析

该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化,导致传入的携带恶意代码的序列化数据执行。

访问/invoker/readonly, 如果出现报 500 错误,则说明目标机器可能存在此漏洞。

漏洞复现

访问http://your-ip:8080/invoker/readonly,则可能存在漏洞:

vulhub漏洞复现-jboss反序列化漏洞复现_第7张图片

你可能感兴趣的:(安全,服务器,运维,web安全)