使用vulhub的环境:
https://github.com/vulhub/vulhub/tree/master/gitlab/CVE-2016-9086
任意文件读取漏洞(CVE-2016-9086):
GitLab CE/EEversions 8.9, 8.10, 8.11, 8.12, and 8.13
任意用户authentication_token泄露漏洞:
Gitlab CE/EE versions 8.10.3-8.10.5
docker起来之后是这样:
新建项目的时候有一个从Gitlab导出文件中
导入的功能:
导入之后再点击import repository
即可实现文件读取:
原来这里的project.json文件是一个符号链接文件:
这个文件是怎么构造的以及原理参考:
GitLab 任意文件读取漏洞 (CVE-2016-9086) 和任意用户 token 泄露漏洞
原来是通过导出项目文件的方式获取到这个文件的构造方式。
如果这个压缩包已经被解压(这里是我事先不知道手动解压的),则会出现:
Gitlab 11.4.7-ce SSRF攻击Redis
SSRF targeting redis for RCE via IPv6/IPv4 address embedding chained with CLRF injection in the git:// protocol. 利用Import repository From URL功能进行SSRF,利用Ipv6地址绕过localhost访问限制。然后改用git协议结合CLRF攻击localhost的Redis实现RCE。
新建项目的时候选择Repo by URL
发现8.x版本的并没有localhost的限制:
然后如果端口不开放是这样:
由于vulhub只有8.x版本的,
https://hub.docker.com/r/vulhub/gitlab/tags?page=1&ordering=last_updated
转而使用这个docker配置文件:
https://gist.githubusercontent.com/LiveOverflow/8bf92dd86e5c481fb484af83c64e83b3/raw/461aa3839651d183f37a087720e94c3f0efba1d2/docker-compose.yml
,这个是11.4.7-ce
版本的。
不过用这个没有启动起来,还是用vulhub的那个配置格式,然后把版本号改成11的
//TODO