Harbor任意管理员注册漏洞

CVE-2019-16097

Posted by zeroisone on April 11, 2020

Harbor任意管理员注册漏洞(CVE-2019-16097)

0x00 前言

测试时遇到两个harbor系统,其中一个版本为v1.8.1,使用网上公布的poc在注册时添加参数”has_admin_role”:true,请求响应头为:200 Created,成功注册管理员账号。(下面这张复现图来源于网络!)

0x01 Harbor v1.5.2

另一个版本为v1.5.2,直接使用相同的poc发送请求,却提示错误,如下图所示:

0x02 Harbor v1.8.1 & v1.5.2源码对比

下载v1.5.2的代码与v1.8.1代码对比查找原因,在源码src/common/moudels/user.go中user的结构体,发现v1.8.1中的HasAdminRole字段为bool类型,v1.5.2中HasAdminRole字段为int类型

0x03 v1.5.2 poc

修改poc为:”has_admin_role”:1,漏洞复现成功

0x04 参考

ps:对比两个版本的响应,发现一个小细节,v1.8.1版本location返回了UserID值 https://xz.aliyun.com/t/6412 https://cert.360.cn/report/detail?id=57ef85f85ae82a77070ccbba2330c1a0