Jenkins CLI 任意文件读取漏洞复现

这篇具有很好参考价值的文章主要介绍了Jenkins CLI 任意文件读取漏洞复现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

漏洞描述

Jenkins CLI 是 Jenkins 内置的命令行页面。

Jenkins 受影响版本中使用 args4j 库解析CLI命令参数,该库默认将参数中 @ 字符后的文件路径替换为文件内容,未授权的攻击者可利用该特性使用 Jenkins 控制器进程的默认字符编码读取 Jenkins 控制器文件系统上的任意文件(如加密密钥的二进制文件),并结合 Resource Root URL、Remember me cookie、存储型 XSS 或 CSRF 等在 Jenkins 控制器中执行任意代码。

Jenkins 2.442, LTS 2.426.3 版本通过禁用命令解析器读取 @ 字符后文件路径的特性修复此漏洞。

影响版本

jenkins@(-∞, 2.442)

jenkins lts@(-∞, 2.426.3)

jenkins@影响所有版本

org.jenkins-ci.main:jenkins-core@(-∞, 2.442)

漏洞原理

args4j在解析命令行的时候会把@后面的字符作为文件名,并读取文件内容作为参数的值。

使用限制

1)关闭了匿名用户可读权限,只能读取几行文件

如果jenkins关闭了匿名用户可读的权限,则Jenkins CLI上大部分的命令都不能执行,可以执行的只有help和who-am-i,这两个命令是无需任何权限的。

如下:如果关闭了匿名用户可读,执行其它命令会报错,ERROR: anonymous is missing the Overall/Read permission

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

为什么只能读取几行?

该漏洞的原理是由于args4j在解析命令行的时候会把@后面的字符作为文件名,并读取文件内容作为参数的值。那么当我们在调用该命令时如果出错,args4j就会将错误返回给客户端,而错误信息中就包含文件的内容。但是有个问题就是如果我们使用@将文件内容加载成命令行参数,则会遇到问题,那就是文件中存在空白字符的情况下,会被分割参数。如一个文件有四行,那么命令解析就会将这四行分别作为一个参数跟到help命令的后面。

java -jar jenkins-cli.jar -s http://localhost:8080/ help 1 2 3 4

而这个命令只接受前面的几个参数,报错的时候也只会把前面的几个参数报出来,因此我们不能读取到文件的全部内容。

漏洞复现

1)复现的时候需要用到jenkins-cli.jar,可以找一个jenkins服务,登录以后访问/cli/链接,下载该jar包

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

2)关闭匿名访问的情况下

ava -jar jenkins-cli.jar -s http://localhost:8080/ help "@/etc/passwd"

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

这时可以通过报错信息读取到前面两行的信息

如果一个文件只有一行(如/var/jenkins_home/secret.key 和 /var/jenkins_home/secrets/master.key),使用help读取就会出现“ERROR: You must authenticate to access this Jenkins.”的错误:

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

前面不是说调用help命令可以不需要权限吗?实际上,help命令会先检查命令的参数个数是否正确,后再检查权限,如果我们能让检查命令参数个数的步骤就出错,就能正常返回错误信息了。

所以,可以人为地给help命令后增加一个新参数,比如:

java -jar jenkins-cli.jar -s http://localhost:8080/ -http help 1 "@/var/jenkins_home/secret.key"

此时help后有两个参数,参数个数太多导致出错,第二个参数被爆出,就是我们要读的文件内容:

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

3)开启匿名访问的情况下

开启匿名访问

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

可以通过connect-node命令和reload-job命令读取文件的全部内容

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

可以读取那些文件

知道了如何读取文件,那么我们在实战中应该读取哪些文件呢?

如果部署Jenkins使用的是官方镜像,那么Jenkins的数据根目录是在/var/jenkins_home。但并不是所有人都会使用这个目录作为根目录,如果像读取Jenkins相关的文件,必须先知道Jenkins的根目录在哪里。

这时可以读取/proc/self/environ和/proc/self/cmdline,这两个文件中包含的是当前进程的环境变量和cmd启动命令行,其中就会包含Jenkins的根目录。

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全

拿到了Jenkins的根目录,我们就可以来尝试读取下面这些敏感文件。

/var/jenkins_home/users/*/config.xml

/var/jenkins_home/secret.key

/var/jenkins_home/secrets/master.key

/var/jenkins_home/secrets/org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices.mac

后面具体的利用可以查看该链接:Jenkins文件读取漏洞拾遗(CVE-2024-23897)-腾讯云开发者社区-腾讯云

 专注分享安全知识,大家可以关注一下我的微信公众号,谢谢大家!

不积跬步,无以至千里;不积小流,无以成江河。

apache tomcat信息泄露漏洞jenkins cli任意文件读取漏洞,漏洞集合,servlet,安全,web安全文章来源地址https://www.toymoban.com/news/detail-837024.html

到了这里,关于Jenkins CLI 任意文件读取漏洞复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【漏洞复现】Tomcat 任意写入文件漏洞(CVE-2017-12615)

    Apache Tomcat 7.0.0到7.0.79版本中存在远程代码执行漏洞, 当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法时,攻击者可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件 ,文件中的代码被服务器执行。 Apache Tomcat =7.0.0,=7.0.79 漏洞的Tomcat运行在Windows/Linux主

    2024年02月13日
    浏览(48)
  • 【漏洞复现】OfficeWeb365 Indexs 任意文件读取漏洞

    OfficeWeb365 /Pic/Indexs接口处存在任意文件读取漏洞,攻击者可通过独特的加密方式对payload进行加密,读取任意文件,获取服务器敏感信息,使系统处于极不安全的状态。 FOFA:body=\\\"请输入furl参数\\\" || header=\\\"OfficeWeb365\\\" || banner=\\\"OfficeWeb365\\\" 读取文件加密方式

    2024年02月02日
    浏览(45)
  • OfficeWeb365 Indexs 任意文件读取漏洞复现

    OfficeWeb365 是专注于 Office 文档在线预览及PDF文档在线预览云服务,包括 Microsoft Word 文档在线预览、Excel 表格在线预览、Powerpoint 演示文档在线预览,WPS 文字处理、WPS 表格、WPS 演示及 Adobe PDF 文档在线预览。 OfficeWeb365 /Pic/Indexs接口处存在任意文件读取漏洞,攻击者可通过独特

    2024年02月03日
    浏览(37)
  • 漏洞复现-Yearning front 任意文件读取漏洞(附漏洞检测脚本)

    文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担

    2024年01月18日
    浏览(39)
  • Metinfo6.0.0任意文件读取漏洞复现

    漏洞原理 在MetInfo6.0.0appsystemincludemodule的old_thumb.class.php文件 可以看到这里对./进行了严格的过滤,但是却忽略了在Windows下还可以用…来跳转目录 环境搭建 下载Metinfo6.0.0 配置随便写,自己记住就行 这里前面已经审计过代码了,就直接上payload了 http://10.9.75.161/MetInfo6.0.0

    2024年02月10日
    浏览(33)
  • metinfo_6.0.0 任意文件读取漏洞复现

    漏洞点为/include/thumb.php 一测: /include/thumb.php?dir=..././http/..././config/config_db.php 二测: /include/thumb.php?dir=.....///http/.....///config/config_db.php 三测: /include/thumb.php?dir=http/.....///.....///config/config_db.php 四测: /include/thumb.php?dir=http....configconfig_db.php 注意: 此POC 仅适用于Windows 系统

    2024年01月20日
    浏览(46)
  • Metinfo6.0.0任意文件读取【漏洞复现】

    1.1、漏洞描述 漏洞名称:MetInfo任意文件读取 漏洞简介:MetInfo是一套使用PHP和MySQL开发的内容管理系统,其中的 /app/system/include/module/old_thumb.class.php 文件存在任意文件读取漏洞,攻击者可利用该漏洞读取网站的敏感文件。 下载地址:历史版本安装文件下载 Ver_6.0.0 1.2、漏洞等

    2024年02月10日
    浏览(43)
  • 用友NC word.docx 任意文件读取漏洞复现

     用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 用友NC 系统word.docx等接口存在任意文件读取漏洞,未经身份认证

    2024年01月25日
    浏览(31)
  • officeWeb365 Indexs接口存在任意文件读取漏洞复现

    OfficeWeb365 是专注于 Office 文档在线预览及PDF文档在线预览云服务,包括 Microsoft Word 文档在线预览、Excel 表格在线预览、Powerpoint 演示文档在线预览,WPS 文字处理、WPS 表格、WPS 演示及 Adobe PDF 文档在线预览。OfficeWeb365 /Pic/Indexs接口处存在任意文件读取漏洞,攻击者可通过独特

    2024年02月20日
    浏览(41)
  • IP-guard WebServer 任意文件读取漏洞复现

     IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 由于IP-guard WebServer /ipg/static/appr/lib/flexpaper/php/view.php接口处未对用户输入的数据进行严格的校验和过滤。未经身份验证的攻击者可

    2024年04月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包