hackerone-shopify-2020-06-c-910300

Email Confirmation Bypass in your-store.myshopify.com which leads to privilege escalation

보고서

SSO가 없는 계정만을 takeover 할 수 있었다.

  1. 파트너 계정으로 이동하여 상점을 만든다. attacker@mail.com 메일을 이용해 만든다.
  2. 새 스토어로 이동하여 이메일을 인증하지 말고, /admin/settings/account/<<계정 번호>> 로 이동한다. 이 페이지에서는 계정의 이메일을 변경할 수 있다.
  3. 이메일을 타겟의 이메일로 변경한다.(victim@mail.com) 이는 이메일 인증을 요구한다.
  4. Burpsuite에서 Response body의 attacker@mail.comvictim@mail.com으로 전부 변경하도록 룰을 추가한다.
  5. /admin/settings/account/<<계정 번호>> 페이지를 새로고침한다. 패킷을 조작했으니 attacker@mail.comvictim@mail.com로 대체되어 보인다.
  6. Upload Photo 버튼을 눌러 이미지를 올리고 저장한다.
  7. Burpsuite에 등록한 룰을 해제하고 새로고침한다. 그리고 다시 비밀번호를 공격자 소유의 메일로 변경하여 이메일 인증 메일을 받는다.
  8. 다시 Burpsuite에 등록한 룰을 활성화한다.
  9. 공격자 소유의 이메일에 이메일 인증 링크를 클릭한다.
  10. 이메일을 확인한 페이지에서 다른 이미지를 업로드한다.
  11. 이전에 동일 이메일로 연결된 계정이 있다는 창에 있는 Review accounts 버튼을 클릭한다.
  12. 스토어 비밀번호를 입력하고 Shopify ID가 표시된다.
  13. Set up Shopify ID 버튼을 누른다.
  14. 이전에 생성된 (타겟이 생성했던) Shopify ID를 얻을 수 있다.
  15. Continue를 누르고 패스워드를 지정한다.
  16. 이제 타겟의 상점과 파트너 계정을 문제 없이 접근할 수 있다.

tags: bughunting, business-logic-vul, wstg-busl-06, access control vulnerability, wstg-athz-02, wstg-athz-03, shopify, severity critical, web hacking