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 지원하기

XSS에서 RCE까지

  • PrestaXSRF: PrestaShop 익스플로잇 스크립트로 XSS를 RCE 또는 기타 심각한 취약성으로 승격시킵니다. 자세한 내용은 this post를 확인하세요. 이 도구는 PrestaShop 버전 8.X.X 및 1.7.X.X를 지원하며 다음을 허용합니다:
  • (RCE) PSUploadModule(); - 커스텀 Module 업로드: Persistent 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))를 실행하므로 email existence == login (비밀번호/토큰 검증 없음).
  • 공격자가 제어하는 이메일 필드: JSON 페이로드 내 order.payer.email_addressExpressCheckoutRequest::getPayerEmail()에 의해 읽힙니다.

공격 단계

  1. 등록된 고객 이메일을 수집합니다 (admin 계정은 별도이며 이 흐름의 영향을 받지 않습니다).
  2. 컨트롤러에 대해 인증되지 않은 상태로 orderID와 피해자 이메일을 order.payer.email_address에 넣어 POST 요청을 보냅니다.
  3. 엔드포인트가 500을 반환하더라도 응답에는 피해자 고객 컨텍스트의 쿠키가 포함되어 있습니다(세션이 이미 전환됨). 이를 통해 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 지원하기