PrestaShop

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

From XSS to RCE

  • PrestaXSRF: PrestaShop 利用脚本,可将 XSS 提升为 RCE 或其他严重漏洞。 更多信息请查看 this post。它提供 对 PrestaShop Versions 8.X.X 和 1.7.X.X 的支持,并允许:
  • (RCE) PSUploadModule(); - Upload a custom Module: 上传一个持久化的 Module(backdoor)到 PrestaShop。

ps_checkout ExpressCheckout silent login account takeover (CVE-2025-61922)

缺少对 ps_checkout 模块 < 5.0.5 的身份验证,允许未认证的攻击者 通过提供邮箱切换会话到任意客户

  • 端点(未认证): POST /module/ps_checkout/ExpressCheckout.
  • 流程: ExpressCheckout.php 接受攻击者的 JSON,仅检查 orderID,构建 ExpressCheckoutRequest 并调用 ExpressCheckoutAction::execute()
  • 认证漏洞: 在易受影响的版本中,当没有用户登录时,ExpressCheckoutAction 会调用 CustomerAuthenticationAction::execute()。该方法仅执行 customerExists(<payer_email>)context->updateCustomer(new Customer($id)),所以 邮箱存在 == 登录(没有密码/令牌检查)。
  • 攻击者可控的邮箱字段: JSON 负载中的 order.payer.email_address 会被 ExpressCheckoutRequest::getPayerEmail() 读取。

利用步骤

  1. 收集任意已注册的客户邮箱(管理员账户是单独的,不受此流程影响)。
  2. 向该 controller 发送未认证的 POST,请求中包含 orderID 以及受害者邮箱于 order.payer.email_address
  3. 即使端点返回 500,响应也会包含受害者客户上下文的 cookies(会话已被切换),从而可以访问 PII 或使用已保存的卡进行购买。
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"}}}

参考资料

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks