Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。利用该漏洞,可以上传任意jsp文件,进而获取服务器权限。Weblogic管理端未授权的两个页面存在任意上传Getshell漏洞,可直接获取权限。两个页面分别为/wsutc/begin.do与/wsutc/config.do。
影响范围:Oracle WebLogic Server
版本:10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
靶场环境为我个人云服务器+Vulhub靶场
地址:/root/vulhub/weblogic/CVE-2018-2894
执行如下命令,启动weblogic 12.2.1.3:
docker-compose up -d
等docker环境构建结束后后,会在7001端口开放一个服务
此处需要登陆账号和密码
正常情况下我们尝试使用弱口令爆破进后台,为了方便复现
我们执行docker-compose logs | grep password可查看管理员密码即可登录
登陆后界面:
登录后台页面,点击【base_domain】的配置
在选项【高级】中开启启用【 Web 服务测试页】选项并保存
访问/ws_utc/config.do,有一个原本的Work Home Dir
/u01/oracle/user_projects/domains/base_domain/tmp/WSTestPageWorkDir
访问这个目录发现需要跳转登陆
http://IP:7001/ws_utc/u01/oracle/user_projects/domains/base_domain/tmp/WSTestPageWorkDir
参考Phithon博客所建议的路径,设置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目录,访问这个目录是无需权限的,这一点是很重要的。
然后点击【安全】 【增加】,然后准备抓包+上传webshell:
查看返回的数据包,其中有时间戳
然后访问
http://ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
即可执行webshell: