我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:盛源彩票 > 反序列化 >

java反序列化漏洞——2015年被低估的“破坏之王”

归档日期:05-02       文本归类:反序列化      文章编辑:爱尚语录

  近日,2015年最为被低估的,具有巨大破坏力的漏洞浮出水面。在FoxGlove Security安全团队的@breenmachine 发布一篇博客中介绍了该漏洞在最新版的WebLogic、WebSphere、JBoss、Jenkins、OpenNMS中的应用,实现远程代码执行。更为严重的是,在漏洞被发现的9个月后依然没有有效的java库补丁来针对受到影响的产品进行加固。现在,让我们探讨下该漏洞的原理以及应用。

  java反序列化漏洞是一类被广泛应用的漏洞,绝大多数的编程语言都会提供内建方法使用户可以将自身应用所产生的数据存入硬盘或通过网络传输出去。这种将应用数据转化为其他格式的过程称之为序列化,而将读取序列化数据的过程称之为反序列化。

  当应用代码从用户接受序列化数据并试图反序列化改数据进行下一步处理时会产生反序列化漏洞。该漏洞在不同的语言环境下会导致多种结果,但最有危害性的,也是之后我们即将讨论的是远程代码注入。

  在最近几年间,不断的有java反序列化漏洞被曝光。最近的几次分别产生于spring框架以及Groovy还有文件上传的java库中,这些漏洞均得到了修复。

  但在最近的研究中,安全人员发现java反序列漏洞远远不止上述几处,该漏洞广泛的存在于java库中。

  在java编写的web应用与web服务器间java通常会发送大量的序列化对象例如以下场景:

  上述代码中的java类ObjectInputStream在执行反序列化时并不会对自身的输入进行检查,意味着一种可能性,即恶意攻击者构建特定的输入,在ObjectInputStream类反序列化之后会产生非正常结果。而根据最新的研究,利用这一方法可以实现远程执行任意代码。

  主要修改为自定义了一个被序列化的对象myobject,通过定义myobject实现了java序列化的接口并且定义了一种名为“readObject”的方法。通过对比上面例子的输出,可以发现反序列化的相关数值被修改了,即执行的用户自身的代码。造成结果不同的关键在于readObject方法,java在读取序列化对象的时候会先查找用户自定义的readObject是否存在,如果存在则执行用户自定义的方法。

  在之前的论述中可以发现利用该漏洞首先应找出readObject方法调用,在找到之后进行下一步的注入操作。一般可以通过以下方法进行查找:

  (1)针对特定的java应用,对此漏洞的应用应首先寻找可以利用的“靶点”,即确定调用反序列化函数的地点。这可以通过对java应用进行源码审计,例如找寻反序列化函数readObject调用情况。

  (2)对于该应用的网络行为进行抓包,寻找序列化数据(在包数据中,序列化数据一般会以ac ed 00 05开头)来进行判断。

  在发现序列化数据之后,需要产生一个用于测试的pyload。这里可以在github上下载一个工具“ysoserial”并执行下列指令:

  当/ tmp / pwned文件被创建时说明测试已经开始,而后续的步骤将结合实例一起分析。

  这里以Jboss为例,Jboss利用的是HTTP协议,可以在任何端口上运行,默认安装在8080端口中。而且Jboss与“JMXInvokerServlet”的通信过程中存在一个公开漏洞。JMX是一个java的管理协议,在Jboss中的JMXInvokerServlet可以使用HTTP协议与其进行通话。这一通信功能依赖于java的序列化类。

  在默认安装的Jboss中,JMXInvokerServlet的路径恰好为。如果用户访问一个web浏览器,实际上会返回一个原始的java对象,这中行为显然存在一个漏洞。

  这个漏洞可以很经常的通过互联网被利用,由于jmxinvokerservlet与主要的Web应用程序在同一个端口上运行,因此它很少被防火墙所拦截。

  由此可以以jmx作为Jboss接受外部输入的点,可以利用java HTTP client包构建POST请求,post请求包中数据为使用ysoserial处理之后的构建代码。

  专业,只为更好 联想商用PC助推企业数字化转型 ——联想商用PC品牌主张及新品发布

  要闻回顾:“先天优势不如后天培养” Docker安全面面观_WatchStor焦点周刊_No.384

  本网站依据国家相关规定准备了相应的稿酬,但由于客观原因无法支付。如您是这篇文章或图片的著作权人或其他权利人,请与本网站联系。本网站在确认您的身份后将予以支付。

本文链接:http://buggystordera.com/fanxuliehua/136.html