Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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-76564 — Gespeichertes XSS über User-Agent in der Admin-Bestellansicht in PhocaCart | Kitploit
Tools/GitHubGitHub/toanln-cov/cve-2026-76564
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationWebsicherheitPapers & Forschung
GitHubtoanln-cov/cve-2026-76564

CVE-2026-76564

Gespeichertes XSS über User-Agent in der Admin-Bestellansicht in PhocaCart

Repository anzeigen
vor 3 TagenNoch 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

Gespeichertes XSS über User-Agent in der Admin-Bestellansicht in PhocaCart

PhocaCart ≤ 6.1.7 — Nicht authentifizierter Angreifer speichert XSS-Payload über den Checkout. Wird im Admin-Browser-Kontext ausgeführt

CVE CVSS v4.0 CWE-79 Affected Researcher


ZUSAMMENFASSUNG

PhocaCart 6.1.7 für Joomla speichert den rohen HTTP-User-Agent-Header aus Checkout-Anfragen in der Bestell-Datenbanktabelle, wenn die Konfigurationsoption store_user_agent aktiviert ist. Der gespeicherte Wert wird anschließend ohne HTML-Kodierung über itemText() in Adminview.php in die Bestellbearbeitungsansicht des Administrators gerendert.

Ein nicht authentifizierter Angreifer kann eine Bestellung mit einem manipulierten aufgeben, der einen JavaScript-Payload enthält. Wenn ein Administrator die Bestellung im Backend öffnet, wird der Payload im Admin-Browser-Kontext ausgeführt — was Session-Hijacking, den Diebstahl von Anmeldedaten oder unautorisierte administrative Aktionen ermöglicht.

Tool herunterladen
User-Agent

Die Schwachstelle erfordert, dass store_user_agent = 1 (nicht standardmäßig) aktiviert ist. Da diese Option eine bewusste Administrator-Entscheidung zur Erfassung von Browserstatistiken darstellt, sind betroffene Shops solche, in denen der Shopbetreiber die Funktion aktiviert hat — was die Ausnutzung aus Sicht des Angreifers völlig lautlos macht.


BETROFFENE VERSIONEN

KOMPONENTEVERWUNDBARGETESTET AUFBEHOBEN
PhocaCart (com_phocacart)5.0.0 – 6.1.7Joomla 5.4.7 + PhocaCart 6.1.7 + MariaDB 10.66.1.8

DETAILS ZUR SCHWACHSTELLE

Typ: Gespeichertes XSS (CWE-79) — auf den Administrator abzielend Erforderliche Authentifizierung: Keine zum Injizieren. Administrator zum Auslösen CSRF-Token erforderlich: Ja (standardmäßiges Joomla-CSRF-Token für den Checkout erforderlich) Datei: administrator/components/com_phocacart/libraries/Phoca/Render/Adminview.php:382

Grundursache

Wenn store_user_agent = 1 ist, gibt die Methode PhocacartUtils::getUserAgent() $_SERVER['HTTP_USER_AGENT'] ohne jegliche Bereinigung zurück. Diese rohe Zeichenkette wird in #__phocacart_orders gespeichert (auf 200 Zeichen gekürzt — nicht ausreichend, um XSS zu verhindern). Wenn ein Administrator die Bestellung im Backend anzeigt, fügt itemText() den gespeicherten Wert ohne Aufruf von htmlspecialchars() direkt in die HTML-Antwort ein.

Datenfluss:

root@kitploit:~
Attacker sends checkout request:
  User-Agent: <script>alert(document.domain)</script>

    utils.php:334   PhocacartUtils::getUserAgent()
    └─ return (string) $_SERVER['HTTP_USER_AGENT']   // raw, no sanitization
        order.php:413  $d['user_agent'] = substr($user_agent, 0, 200)
        └─ INSERT INTO #__phocacart_orders (user_agent) VALUES ('<script>...</script>')

Admin opens order in backend:
    edit.php:84    echo $r->itemText($this->itemcommon->user_agent, ...)
    Adminview.php:382  '<div class="controls >' . $item . '</div>'
                                           // → NO htmlspecialchars()
    → Browser renders: <div><script>alert(document.domain)</script></div>
    → XSS fires in administrator's browser

ORDER.PHP — SPEICHERPHASE (VERWUNDBARE QUELLE)

administrator/components/com_phocacart/libraries/phocacart/order/order.php:424

root@kitploit:~
$user_agent = PhocacartUtils::getUserAgent(); // reads $_SERVER['HTTP_USER_AGENT'] raw
$d['user_agent'] = substr($user_agent, 0, 200); // stored in DB unfiltered

ADMINVIEW.PHP:382 — RENDER-PHASE (VERWUNDBARER SINK)

root@kitploit:~
// No htmlspecialchars() applied:
$output .= '  <div class="controls ' . $class . '">' . $item . '</div>' . "\n";

Aufgerufen aus administrator/components/com_phocacart/views/phocacartorder/tmpl/edit.php:84:

root@kitploit:~
echo $r->itemText($this->itemcommon->user_agent, Text::_('COM_PHOCACART_USER_AGENT'), '', 'user_agent');

Die Funktion itemText() übergibt $item (den gespeicherten user_agent-Wert) ohne Kodierung direkt in die HTML-Ausgabe und macht sie damit zum primären Sink. Eine Korrektur auf Sink-Ebene schützt alle Aufrufer von itemText().


PROOF OF CONCEPT

Der Angriff erfordert das vollständige Durchlaufen des Checkout-Prozesses mit einem bösartigen User-Agent-Header. Das CSRF-Token muss zuerst erlangt werden, da der Checkout-Controller von Joomla es validiert.

0. Voraussetzung — User-Agent-Informationen speichern aktivieren

Navigieren Sie im Joomla-Admin zu Komponenten → Phoca Cart → Optionen → Registerkarte Haupt → Statistik-Optionen. Setzen Sie User-Agent-Informationen speichern = Ja und speichern Sie.

Voraussetzung: User-Agent-Informationen speichern = Ja

1. CSRF-Token erlangen

Der Angreifer besucht das Shop-Frontend, um ein gültiges Joomla-CSRF-Token zu extrahieren, das vom Checkout-Controller benötigt wird. Das Token erscheint im HTML-Quelltext oder in der JavaScript-Konfiguration einer beliebigen Shop-Seite.

Schritt 1: Angreifer erlangt CSRF-Token über Burp Suite vom Shop-Frontend

2. Produkt in den Warenkorb legen

Der Angreifer legt ein Produkt über den AJAX-Checkout-Endpunkt mit einem harmlosen User-Agent in den Warenkorb. Dadurch wechselt die Checkout-Sitzung in den nächsten Status.

Schritt 2: Produkt in den Warenkorb legen — POST checkout.add

3. Rechnungsadresse speichern

Der Angreifer übermittelt Rechnungsinformationen, um die Checkout-Zustandsmaschine voranzutreiben.

Schritt 3: Rechnungsadresse speichern — Burp Suite

4. Versandmethode speichern

Der Angreifer wählt eine Versandmethode, um zur Zahlung fortzufahren.

Schritt 4: Versandmethode speichern — Burp Suite

5. Zahlungsmethode speichern

Der Angreifer wählt eine Zahlungsmethode (z. B. Nachnahme).

Schritt 5: Zahlungsmethode speichern — Burp Suite

6. Payload injizieren — Bestellung mit bösartigem User-Agent aufgeben

Kritischer Injektionsschritt. Der Angreifer gibt die endgültige Bestellung über task=checkout.order auf, wobei der User-Agent-Header auf den XSS-Payload gesetzt ist. Die Aufgabe checkout.order liest den rohen HTTP_USER_AGENT und speichert ihn unescaped in #__phocacart_orders.user_agent.

root@kitploit:~
POST /index.php/shop/checkout HTTP/1.1
Host: TARGET
User-Agent: <script>alert(document.domain)</script>
Content-Type: application/x-www-form-urlencoded

phcheckouttac=1&task=checkout.order&option=com_phocacart&return=&<CSRF_TOKEN>=1

Ergebnis: Bestellung erstellt. Die Datenbank speichert user_agent = '<script>alert(document.domain)</script>'.

Schritt 6: Bestellaufgabe mit bösartigem User-Agent — Payload in die Datenbank injiziert

7. Administrator zeigt Bestellliste an

Der Administrator navigiert zu Komponenten → Phoca Cart → Bestellungen. Die injizierte Bestellung erscheint in der Liste. XSS wird in dieser Phase noch nicht ausgelöst.

Schritt 7: Admin-Bestellliste im Joomla-Backend — injizierte Bestellung sichtbar

8. XSS feuert — Administrator öffnet Bestelldetails

Wenn der Administrator auf die Bestellung klickt, um die Bearbeitungsansicht zu öffnen, wird der gespeicherte user_agent über itemText() unescaped gerendert. JavaScript wird sofort ausgeführt.

Trigger-URL:

root@kitploit:~
/administrator/index.php?option=com_phocacart&view=phocacartorder&layout=edit&id=<ORDER_ID>

Schritt 8: XSS-Payload wird im Browser des Administrators ausgeführt — alert(document.domain) bestätigt den Ausführungskontext


AUSWIRKUNGEN

  1. Session-Hijacking des Administrators — Der XSS-Payload kann das Session-Cookie des Administrators exfiltrieren und gewährt so ohne Anmeldedaten vollen Backend-Zugriff.
  2. Unautorisierte Admin-Aktionen — Da der Payload im Admin-Browser-Kontext ausgeführt wird, kann er jede Backend-Aktion durchführen: privilegierte Konten erstellen, schädliche Erweiterungen installieren oder Inhalte verändern.
  3. Persistente Backdoor — Ein Payload, der eine Webshell installiert oder ein unautorisiertes Admin-Konto erstellt, bleibt über das XSS-Ereignis hinaus bestehen und verschafft dem Angreifer dauerhaften Zugriff auf den Server.

REFERENZEN

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-76564
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-76564
  • GitHub-Sicherheitshinweis: https://github.com/advisories/GHSA-98mw-pj3j-99v2
  • Anbieter-Repository: https://github.com/PhocaDesign/PhocaCart