前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安全研究 | Jenkins 任意文件读取漏洞分析

安全研究 | Jenkins 任意文件读取漏洞分析

作者头像
云鼎实验室
发布于 2018-07-25 12:55:12
发布于 2018-07-25 12:55:12
5.2K0
举报

一、漏洞背景

漏洞编号:CVE-2018-1999002

漏洞等级:高危

Jenkins 7 月 18 日的安全通告修复了多个漏洞,其中 SECURITY-914 是由 Orange (博客链接:http://blog.orange.tw/)挖出的 Jenkins 未授权任意文件读取漏洞。

腾讯安全云鼎实验室安全研究人员对该漏洞进行分析发现,利用这个漏洞,攻击者可以读取 Windows 服务器上的任意文件,对于 Linux,在特定条件下也可以进行文件读取。利用文件读取漏洞,攻击者可以获取到 Jenkins 的凭证信息,从而造成敏感信息泄露。另外,在很多时候,Jenkins 的部分凭证和其内用户的帐号密码相同,获取到凭证信息后也可以直接登录 Jenkins 进行命令执行操作等。

二、漏洞分析

Jenkins 在处理请求的时候是通过 Stapler 进行处理的,Stapler 是一个 Java Web 框架。查看 web.xml 可知,Stapler 拦截了所有请求:

单步跟入 hudson.util.PluginServletFilter,最后会跟到 jenkins\core\src\main\java\hudson\Plugin.java 的 doDynamic 方法:

可以发现,Jenkins 在

 serve /plugin/SHORTNAME 这个 URL 的时候,

调用的是 StaplerResponse 的 serveLocalizedFile 方法处理静态文件的,继续跟入这个方法:

其中 request.getLocale() 是 jetty-server-9.4.5.v20170502-sources.jar!\org\eclipse\jetty\server\Request.java  内的,其实现为:

非常明显,Jetty 在获取 Locale 的时候直接从 HTTP Headers 里取出 Accept-Language 头,用 - 分割后返回了一个 Locale 对象。也就是我传入Accept-Language: ../../../aaaa-bbbbbb 时,那么我将会得到一个 Locale("../../../aaaa", "BBBBBB")对象。

最后到跟入 stapler-1.254-sources.jar!\org\kohsuke\stapler\Stapler.java:

我们可以发现,Stapler 首先将后缀名单独取出,接着将 Jenkins 目录和传入的 locale 的 language 以及后缀名拼接,然后打开这个路径。那么攻击者只需要构造出如下 HTTP 请求即可造成文件读取:

最后 URL 拼接的现场为:

在 Windows 下,不存在的目录可以通过 ../ 遍历过去的,而对于 Linux 则不行。那么这个漏洞在 Windows 下是可以任意文件读取的,而在 Linux 下则需要在 Jenkins plugins 目录下存在一个名字中存在 _ 的目录才可以。

三、利用方式

一般来说,文件读取漏洞很难转化为命令执行,对于 Jenkins 也是如此。不过 Jenkins 有一个 Credentials 模块,这个模块储存了 Jenkins 的一些凭证信息,很多时候,其凭证的帐号密码是和 Jenkins 的帐号密码相同的。无论如何,在成功利用文件读取漏洞后,都要将凭证信息读取并解密,以收集更多的信息。

如果我们想获取 Jenkins 的凭证信息的话,需要以下几个文件:

· credentials.xml

· secrets/hudson.util.Secret

· secrets/master.key

很幸运的是这几个文件我们都可以利用文件读取漏洞读取出来。在 Shodan 上尝试获取国外 real world 的 Jenkins 的帐号密码:

当然,获取到的帐号密码是不能直接登录的,但是稍微修改一下用户名就可以成功的登录进去了:

四、修复方案

虽然这个漏洞危害较大,但是用户不必太过担心,因为默认安装 Jenkins 的时候匿名用户是没有可读权限的。并且此漏洞在 Linux 上被利用的可能性较小。以下为推荐的修复方案:

➢在全局安全配置中将匿名用户的可读权限去掉

➢升级到最新版本的 Jenkins(2.121.2)

➢使用 Linux

针对此高危漏洞利用,腾讯云网站管家 WAF AI 引擎可检测并拦截,如果需要,请点击左下方【阅读原文】接入使用 ☟

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
安全研究 | Jenkins漏洞分析
Jenkins 是基于 Java 开发的开源软件项目,主要用于 CI (持续集成)、项目管理等。 Jenkins功能包括:
FB客服
2020/07/29
6.4K0
安全研究 | Jenkins漏洞分析
Jenkins RCE漏洞分析汇总
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
安恒网络空间安全讲武堂
2019/09/25
1.5K0
Jenkins插件漏洞分析
Jenkins是一个广泛使用的开源自动化服务器,它允许DevOps开发人员高效、可靠地构建、测试和部署软件。
FB客服
2019/09/25
1.5K0
Jenkins插件漏洞分析
CVE-2024-23897|Jenkins任意文件读取漏洞(POC)
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。
信安百科
2024/02/01
1.9K0
CVE-2024-23897|Jenkins任意文件读取漏洞(POC)
Grafana 任意文件读取漏洞
Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。
Ms08067安全实验室
2021/12/20
3.6K0
Grafana 任意文件读取漏洞
记一次任意文件读取漏洞的挖掘
在某次测试时,碰到了一个python Django站的任意文件读取漏洞,涉及功能为操作日志的线上查看功能,功能截图如下:
潇湘信安
2024/07/15
2480
记一次任意文件读取漏洞的挖掘
Jenkins文件读取漏洞拾遗(CVE-2024-23897)
Jenkins 未授权文件读取漏洞(CVE-2024-23897)今天闹得沸沸扬扬,我也来简单分析一下这个漏洞,并看看这个文件读取如何利用。
phith0n
2024/01/28
8.1K0
Jenkins文件读取漏洞拾遗(CVE-2024-23897)
Mysql Client 任意文件读取攻击链拓展
基本用法(导入文件test.txt到table1表中,txt文件中的行分隔符为\r\n,默认tab键为字段分隔符,txt文件中的每个字段按顺序对应column1、column2,。。。导入表中)
鸿鹄实验室
2021/04/15
1.8K0
Mysql Client 任意文件读取攻击链拓展
kkfileview任意文件读取漏洞复现(批量化)
基本命令: nuclei.exe -l 网址文件.txt -t POC.yaml
samRsa
2024/03/10
2.2K10
kkfileview任意文件读取漏洞复现(批量化)
【漏洞复现】华天动力OA downloadWpsFile.jsp 任意文件读取
华天动力OA是一款将先进的管理思想、管理模式和软件技术、网络技术相结台,为用户提供了低成本、高效能的协同办公和管理平台。 华天动力OA downoadWposFile,jsp 接口处存在任意文件读取漏洞,未经身份认证的攻击者可利用此漏洞获取服务器内部敏感文件,使系统处于极不安全的状态。
没事就要多学习
2024/08/11
3500
【漏洞复现】华天动力OA downloadWpsFile.jsp 任意文件读取
任意文件读取与下载的原理及修复
任意文件读取下载 由于一些网站的业务需要,往往需要提供文件读取或下载的一个模块,但如果没有对读取或下载做一个白名单或者限制,可能导致恶意攻击者读取下载一些敏感信息(etc/passwd 等),对服务器做下一步的进攻与威胁。
物联网安全小编
2020/03/12
7.9K0
WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞
目录浏览漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。
谢公子
2022/01/13
14.9K0
WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞
【漏洞通告】Apache Solr任意文件读取与SSRF漏洞
近日,绿盟科技监测到网上披露了Apache Solr的文件读取与SSRF漏洞,由于Apache Solr默认安装时未开启身份验证,导致未经身份验证的攻击者可利用Config API打开requestDispatcher.requestParsers.enableRemoteStreaming开关,从而利用漏洞进行文件读取。目前漏洞PoC已公开,请相关用户采取措施进行防护。
绿盟科技安全情报
2021/04/07
9980
(0day)Apache Solr任意文件读取漏洞复现
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Khan安全团队
2021/03/24
9340
(0day)Apache Solr任意文件读取漏洞复现
目录遍历+任意文件读取+任意文件下载
目录遍历又称"路径遍历",由于web服务器配置错误导致网站的目录暴露可以被随意浏览,这种被称为"目录遍历"
vFREE
2021/12/20
4.9K0
目录遍历+任意文件读取+任意文件下载
MYSQl任意文件读取
漏洞利用的相关工具及源码已在github,先亮出地址:https://github.com/allyshka/Rogue-MySql-Server
Ms08067安全实验室
2020/02/19
3.9K0
MYSQl任意文件读取
浅谈任意文件读取下载漏洞
介绍:一些网站由于业务需求,可能提供文件查看或下载功能。如果对用户查看或下载的文件不做限制,则恶意用户能够查看或下载任意文件,可以是源代码文件、敏感文件等。
字节脉搏实验室
2020/05/12
1.7K0
浅谈任意文件读取下载漏洞
MetInfo 任意文件读取漏洞的修复与绕过
MetInfo是一套使用PHP和Mysql开发的内容管理系统。 MetInfo 6.0.0~6.1.0版本中的 old_thumb.class.php文件存在任意文件读取漏洞。攻击者可利用漏洞读取网站上的敏感文件。
逍遥子大表哥
2021/12/17
2.1K0
MetInfo 任意文件读取漏洞的修复与绕过
MetInfo 任意文件读取漏洞的修复与绕过
404实验室内部的WAM(Web应用监控程序,文末有关于WAM的介绍)监控到 MetInfo 版本更新,并且自动diff了文件,从diff上来看,应该是修复了一个任意文件读取漏洞,但是没有修复完全,导致还可以被绕过,本文就是记录这个漏洞的修复与绕过的过程。
Seebug漏洞平台
2018/09/30
1.4K0
MetInfo 任意文件读取漏洞的修复与绕过
任意文件读取漏洞的曲折历程
这周授权测试了某系统,凭借着一个任意文件读取的漏洞,不断深挖,一波三折,历时将近24小时,也和Tide安全的小伙伴不断讨论,最终拿下目标的webshell。过程简直不要太美、太狗血,在此做个整理。
FB客服
2020/03/25
1.6K0
任意文件读取漏洞的曲折历程
相关推荐
安全研究 | Jenkins漏洞分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档