https://hackerone.com/reports/415484
오늘도 역시 XSS로 바운티를 받은건을 가져 왔습니다. 날려먹어서 다시씀 Stored XSS를 성공시켜서 무려 1000달러나 되는 바운티를 받았는데요. 보통은 500달러지만 2배의 금액을 바운티 한 이유는 아마도 방화벽을 매우 간단한 방법으로 우회시켰고, 공격이 발생한다면 피해가 커질 수 있기 때문입니다.
먼저 공격구문을 살펴보겠습니다.
xss"><!--><svg/onload=alert(document.domain)>
공격구문은 매우 간단합니다. 이 공격은 /admin/settings/general 의 경로에서 이루어 졌는데요. 작성자의 설명에 따르면 주소를 입력받는 폼에 주입하여서 성공하였다고 합니다. 먼저 xss"> 를 입력해서 앞의 태그를 닫아 줍니다. 그다음 <!--> 를 넣는데, 이게 바로 방화벽을 우회하기 위해 사용한 방법이라고 합니다.
이렇게 간단한 방법으로 방화벽을 우회한것에 대해 추가적인 바운티 금액이 붙은 것 같습니다. 방화벽 우회 구문 다음으로 경고알림창을 띄우도록 하였네요.
이렇게 공격이 성공하였습니다.
추가적으로 , 공격구문에서 유심히 봐야할게 있어서 내용을 덧붙입니다. 공격구문을 보시면 svg/onload 라는 부분이 있는데요. 원래는 슬러쉬 자리에 공백이 들어가죠. <svg onload 이렇게요. 하지만 자바스크립트는 매우 관대하기(?) 때문에 이렇게 다른 표현을 써도 같은 의미로 해석합니다.
<svg/onload=alert()> == <svg onload=alert()>
슬러쉬랑 공백이 같은 의미를 가집니다.
document.location.href == document["location"]["href"]
요것도 같은 의미를 가집니다. .(점) 이랑 [" "]
같은 의미를 가지기 때문에 역시 같은 결과값이 나옵니다. 이렇게 다른 표현이지만 같은 의미를 가지는 점을 이용하여 우회기법으로 사용하는 경우도 많기때문에 그만큼 xss는 구문의 종류도 많고 우회방법도 매우 많습니다.
'Security > BugBounty Study' 카테고리의 다른 글
버그바운티(Bug Bounty) Write-up / Stored XSS [Shopify] (0) | 2019.06.03 |
---|---|
버그바운티(Bug Bounty) Write-up / Stored XSS [AAF] (1) | 2019.06.02 |
버그바운티(Bug Bounty) Write-up / Path Disclosure ($50) (0) | 2019.04.05 |
버그바운티(Bug Bounty) Write-up / POST Based XSS ($500) (0) | 2019.04.04 |
버그바운티(Bug Bounty) Write-up / DOM Based XSS ($500) (0) | 2019.04.03 |