一、 CVE-2016-9086_GitLab 任意文件读取漏洞
漏洞原理
GitLab是一款Ruby开发的Git项目管理平台。在8.9版本后添加的“导出、导入项目”功能,因为没有处理好压缩包中的软连接,已登录用户可以利用这个功能读取服务器上的任意文件。
环境搭建
192.168.4.10_ubuntu
执行如下命令启动一个GitLab Community Server 8.13.1:
#docker-compose up -d
环境运行后,访问`http://your-ip:8080`即可查看GitLab主页,其ssh端口为10022,默认管理员账号、密码是`root`、`vulhub123456`。
> 注意,请使用2G及以上内存的VPS或虚拟机运行该环境,实测1G内存的机器无法正常运行GitLab(运行后502错误)。
漏洞利用
注册并登录用户,新建一个项目,点击`GitLab export`:
在导入页面,将[test.tar.gz](test.tar.gz)上传,将会读取到`/etc/passwd`文件内容:
二、 CVE-2021-22205_GitLab 远程命令执行漏洞
漏洞原理
GitLab是一款Ruby开发的Git项目管理平台。在11.9以后的GitLab中,因为使用了图片处理工具ExifTool而受到漏洞[CVE-2021-22204](https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html)的影响,攻击者可以通过一个未授权的接口上传一张恶意构造的图片,进而在GitLab服务器上执行任意命令。
环境搭建
靶 机:192.168.4.10_ubuntu
攻击机:192.168.4.29_kali
执行如下命令启动一个GitLab 13.10.1版本服务器:
#docker-compose up -d
环境启动后,访问`http://your-ip:8080`即可查看到GitLab的登录页面。
漏洞利用
GitLab的/uploads/user接口可以上传图片且无需认证,利用[poc.py](poc.py)脚本来测试这个漏洞:
```
python poc.py http://your-ip:8080 "touch /tmp/success"
```
进入容器内,可见`touch /tmp/success`已成功执行:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)