这是在最近的测试项目里(准确来说就是昨天)发现的一个之前没接触过的漏洞,通过该漏洞可以任意注册Harbor镜像仓库的管理员权限角色,漏洞利用难度低,危害程度高,在此记录一下。
一、什么是Harbor
玩过docker的朋友都知道镜像仓库,虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。为什么呢?因为有些开发人员在部署项目时是需要把代码放到镜像里的,通过运行容器,便能获取到这些代码,风险很大。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。
二、漏洞简介和危害
攻击者可以在Harbor的用户注册接口处越权注册管理员账号,从而接管Harbor私有镜像库以及控制访问角色等等。更严重的是可以写入恶意镜像,感染此仓库的客户端。
三、影响范围
Harbor影响版本: 1.7.0-1.8.2
fofa探测Harbor使用范围确定威胁范围:
title="Harbor" && country="CN"
image.png
可以看到使用范围还是蛮多的,但并不代表所有的Harbor都在漏洞版本范围之中。
漏洞利用过程
在对目标的信息进行收集和整理的过程中,发现一个ip上部署了Harbor镜像仓库:
image.png
漏洞所在位置:注册账号接口处
image.png
编辑注册如下信息:
image.png
抓包并在data部分添加字段:"has_admin_role":true
image.png
成功注册为管理员用户:
image.png
除此之外,Harbor还爆出过以下这些CVE,漏洞影响版本号几乎一致:
image.png