hackerone-shopify-2020-06-c-910300
Email Confirmation Bypass in your-store.myshopify.com which leads to privilege escalation
SSO가 없는 계정만을 takeover 할 수 있었다.
- 파트너 계정으로 이동하여 상점을 만든다. attacker@mail.com 메일을 이용해 만든다.
- 새 스토어로 이동하여 이메일을 인증하지 말고,
/admin/settings/account/<<계정 번호>>로 이동한다. 이 페이지에서는 계정의 이메일을 변경할 수 있다. - 이메일을 타겟의 이메일로 변경한다.(victim@mail.com) 이는 이메일 인증을 요구한다.
- Burpsuite에서 Response body의 attacker@mail.com을 victim@mail.com으로 전부 변경하도록 룰을 추가한다.
/admin/settings/account/<<계정 번호>>페이지를 새로고침한다. 패킷을 조작했으니 attacker@mail.com이 victim@mail.com로 대체되어 보인다.- Upload Photo 버튼을 눌러 이미지를 올리고 저장한다.
- Burpsuite에 등록한 룰을 해제하고 새로고침한다. 그리고 다시 비밀번호를 공격자 소유의 메일로 변경하여 이메일 인증 메일을 받는다.
- 다시 Burpsuite에 등록한 룰을 활성화한다.
- 공격자 소유의 이메일에 이메일 인증 링크를 클릭한다.
- 이메일을 확인한 페이지에서 다른 이미지를 업로드한다.
- 이전에 동일 이메일로 연결된 계정이 있다는 창에 있는 Review accounts 버튼을 클릭한다.
- 스토어 비밀번호를 입력하고 Shopify ID가 표시된다.
- Set up Shopify ID 버튼을 누른다.
- 이전에 생성된 (타겟이 생성했던) Shopify ID를 얻을 수 있다.
- Continue를 누르고 패스워드를 지정한다.
- 이제 타겟의 상점과 파트너 계정을 문제 없이 접근할 수 있다.
tags: bughunting, business-logic-vul, wstg-busl-06, access control vulnerability, wstg-athz-02, wstg-athz-03, shopify, severity critical, web hacking