PrestaShop

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Von XSS zu RCE

  • PrestaXSRF: PrestaShop Exploitation Script that elevate XSS to RCE or Others Critical Vulnerabilities. For more info check this post. It provides support for PrestaShop Versions 8.X.X and 1.7.X.X, and allows to:
  • (RCE) PSUploadModule(); - Upload a custom Module: Ein persistentes Modul (Backdoor) in PrestaShop hochladen.

ps_checkout ExpressCheckout stille Login-Übernahme eines Accounts (CVE-2025-61922)

Fehlende Identitätsvalidierung im ps_checkout Modul < 5.0.5 erlaubt einem nicht authentifizierten Angreifer, die Session auf jeden Kunden umzuschalten, indem er deren E-Mail angibt.

  • Endpoint (unauth): POST /module/ps_checkout/ExpressCheckout.
  • Flow: ExpressCheckout.php akzeptiert vom Angreifer geliefertes JSON, prüft nur orderID, erstellt ExpressCheckoutRequest und ruft ExpressCheckoutAction::execute() auf.
  • Auth bug: In verwundbaren Versionen ruft ExpressCheckoutAction CustomerAuthenticationAction::execute() auf, wenn kein Benutzer eingeloggt ist. Diese Methode macht einfach customerExists(<payer_email>) und context->updateCustomer(new Customer($id)), also E-Mail-Existenz == Login (keine Passwort-/Token-Prüfung).
  • Vom Angreifer kontrolliertes E-Mail-Feld: order.payer.email_address im JSON-Payload wird von ExpressCheckoutRequest::getPayerEmail() gelesen.

Exploitation steps

  1. Sammle eine registrierte Kunden-E-Mail (Admin ist separat und von diesem Ablauf nicht betroffen).
  2. Sende einen nicht authentifizierten POST an den Controller mit orderID sowie der Opfer-E-Mail in order.payer.email_address.
  3. Selbst wenn der Endpoint 500 zurückgibt, enthält die Antwort Cookies für den Kundenkontext des Opfers (Session bereits gewechselt), wodurch Zugriff auf PII oder Einkäufe mit gespeicherten Karten möglich sind.
POST /module/ps_checkout/ExpressCheckout HTTP/1.1
Host: `<target>`
Content-Type: application/json
Content-Length: 72

{"orderID":"1","order":{"payer":{"email_address":"victim@example.com"}}}

Referenzen

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks