【IT168 资讯】IT168 资讯】近日,2015年最为被低估的,具有巨大破坏力的漏洞浮出水面。在FoxGlove Security安全团队的@breenmachine 发布一篇博客中介绍了该漏洞在最新版的WebLogic、WebSphere、JBoss、Jenkins、OpenNMS中的应用,实现远程代码执行。更为严重的是,在漏洞被发现的9个月后依然没有有效的java库补丁来针对受到影响的产品进行加固。现在,让我们探讨下该漏洞的原理以及应用。
背景:
java反序列化漏洞
java反序列化漏洞是一类被广泛应用的漏洞,绝大多数的编程语言都会提供内建方法使用户可以将自身应用所产生的数据存入硬盘或通过网络传输出去。这种将应用数据转化为其他格式的过程称之为序列化,而将读取序列化数据的过程称之为反序列化。
当应用代码从用户接受序列化数据并试图反序列化改数据进行下一步处理时会产生反序列化漏洞。该漏洞在不同的语言环境下会导致多种结果,但最有危害性的,也是之后我们即将讨论的是远程代码注入。
2.java反序列化漏洞发现历程
在最近几年间,不断的有java反序列化漏洞被曝光。最近的几次分别产生于spring框架以及Groovy还有文件上传的java库中,这些漏洞均得到了修复。
但在最近的研究中,安全人员发现java反序列漏洞远远不止上述几处,该漏洞广泛的存在于java库中。
Java反序列化漏洞:
漏洞产生原因:
在java编写的web应用与web服务器间java通常会发送大量的序列化对象例如以下场景:
HTTP请求中的参数,cookies以及Parameters。
RMI协议,被广泛使用的RMI协议完全基于序列化
<