Weblogic CVE-2018-2894任意文件上传漏洞
前言
漏洞名称为Weblogic任意文件上传漏洞,编号为CVE-2018-2894
WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。两个页面分别为/ws_utc/begin.do
,/ws_utc/config.do
。
Web 测试页面在“生产模式”下默认不开启,所以该漏洞有限制。利用该漏洞,可以上传任意jsp文件,继而获取服务器权限。
影响版本
WebLogic :10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
漏洞复现
环境
这里我简单记录一下docker开环境的一些步骤,好久没用vulhub都忘了;
kali开启ssh服务,这里是因为我不怎么喜欢用kali的命令行,可以跳过
service ssh start
docker开启环境
docker-compose up -d
关闭环境
docker-compose down
复现过程
环境开启的可能稍微有一点慢。耐心等待一会;
环境开启后就能登录后台了,我这里就不用靶机了,直接本地进去吗,出现一个登录页面,并不知道名字和密码
docker-compose logs | grep password
查看管理员密码,用户名为weblogic
登录进去后点击base_domain的配置,在”Advanced”中开启”启用Web服务测试页”选项,在最下方点击save保存。
访问访问http://192.168.157.128:7001/ws_utc/config.do
,将当前的工作目录为更改为下面的目录,提交保存。设置为该目录的原因是:该ws_utc
应用的静态文件css目录,访问这个目录是无需权限的,所以就算我们不登陆也可以进入这个目录下上传shell
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
点击左侧安全栏目,点击添加,然后上传冰蝎的jsp马,名字和密码可以随便写,不影响
上传过程要用bp抓包,找到查看返回的数据包获取时间戳,这里我上传的木马是冰蝎的,木马的路径为
http://your-ip:7001/ws_utc/css/config/keystore/[时间]_[文件名]
那么我这里的马链接为http://192.168.157.128:7001/ws_utc/css/config/keystore/1645851110286_shell.jsp
尝试冰蝎连接
可以看到连接成功,cat /etc/passwd
执行成功
遇到的问题
昨天在复现的过程中,遇到了上传的jsp马无法解析的问题,看了许多师傅的文章也没找到原因,昨天就没再去弄。今天上kali更新了一下软件,今天jsp马就可以解析了,我也不知道为啥,大家如果遇到我这种jsp马无法解析的情况,去更新一下软件和环境尝试一下,可能有用。
修复建议
- 设置
confid.do
,begin.do
两个页面登录授权后才可访问。 - 更新产品版本,安装安全补丁。