버그바운티(Bug Bounty) Write-up / POST Based XSS ($500)
Security/BugBounty Study

버그바운티(Bug Bounty) Write-up / POST Based XSS ($500)

https://hackerone.com/reports/429679

 

Shopify disclosed on HackerOne: POST-based XSS on apps.shopify.com

Hello Shopify team! I found a post-based XSS which may be shared to other users and occurs in firefox, IE, Edge. How to reproduce: 1. at partners.shopify.com go to apps -> choose one -> more actions -> create shopify app store listing 2. you will get redir

hackerone.com


POST Based XSS - $500

오늘도 역시 XSS 건 입니다. XSS가 웹에서 가장 많이 발생하는 취약점 인데요. XSS 만 클립핑하는 이유가 가장 난이도가 낮고, 찾기도 쉽기 때문입니다? 라는데 어제 네이버랑 해커원에서 진행하는 한 사이트에서 버그바운팅을 진행하였는데 전혀 모르겠더라구요.. 당연히 잘 알려진 공격기법들은 다 막혀있고, 필터링 되어집니다. 공격구문은 그렇다치고 그 취약한 포인트를 찾는게 정말 힘든 것 같습니다. 

쨌든 이 보고서를 살펴보면, 포인트를 딱 잡아서 간단한 공격구문을 주입해서 공격을 성공시켰습니다. 

취약점 발생 부분

먼저 취약점이 발생한 부분인데요. 동그라미 쳐진 부분을 보시면, name 파라미터에 값을 넣는 곳이 있는데, 버그를 발견하신 분의 설명에 따르면 무언가 app을 등록할 때, app name을 받는데 app name에 대한 검증이 없어서 문제가 발생합니다. 받은 데이터를 화면에 뿌려주는 과정에서 <script type="application/id+json">{ 이렇게 구문이 시작되는데, app name에 대한 검증이 없기떄문에 name에 </script>를 넣어서 앞의 구문을 끝내준 후, <iframe onload=alert()> 를 통하여 XSS를 발생시켰습니다.

XSS 취약점 발생

이렇게 말이죠. 참 공격구문은 뭐 방화벽우회라던지, 복잡하지 않고 그냥 단순한 공격구문인데도 불구하고 성공시켰습니다. 중요한건 앞에도 말했지만 공격포인트를 잡는것 같습니다. 

일단 여러가지 욕심내지말고 XSS부터 파보기로 결심했습니다.