JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

1 实验环境

软件名称版本部署方式IP
JBossjboss-6.1.0.Finaldocker run -d -p 8085:8080 –name JBoss docker.io/hackingpub/cve-2017-12149176.122.183.173

2 漏洞原理

JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter过滤 器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致 了攻击者可以在服务器上执行任意代码。

漏洞影响5.x和6.x版本的JBoss。

JBOSS Application Server是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可 以在任何商业应用中免费使用。Java序列化:把Java对象转换为字节序列的过程。Java反序列化:指把 字节序列恢复为Java对象的过程。 Java序列化与反序列化作用:便于保存数据,或者进行数据传输。

漏洞出现在 Jboss 的 HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,源码在 jboss\server\all\deploy\httpha-invoker.sar\invoker.war\WEBINF\classes\org\jboss\invocation\http\servlet目录下的ReadOnlyAccessFilter.class文件中,其中 doFilter函数代码查看方式 :

docker exec -it JBoss bash -c 'cat /jboss-6.1.0.Final/server/all/deploy/httpha-invoker.sar/invoker.war/WEB-INF/classes/org/jboss/invocation/http/servlet/ReadOnlyAccessFilter.class'

3 漏洞复现

安装好环境之后,直接使用jboss反序列化工具打开,成功执行命令。

image-20230405171955335

image-20230405171906533