상세 컨텐츠

본문 제목

jQuery Mobile을 사용하여 제작된 모바일 페이지에서 아직 패치되지 않은 XSS 취약점 존재!

국내외 보안동향

by 알약(Alyac) 2017. 2. 13. 11:31

본문

jQuery Mobile을 사용하여 제작된 모바일 페이지에서 아직 패치되지 않은 XSS 취약점 존재!

Every website that uses jQuery Mobile, and has any open redirect is vulnerable to XSS


최근, 구글의 보안연구원 Eduardo Vela가 jQuery Mobile 프레임워크에서 보안취약점을 발견하였습니다. 해당 취약점은 오픈 리다이렉트 취약점이 존재하는 jQuery Mobile로 구성된 모든 홈페이지에 존재합니다. 


취약점 상세내용


몇 개월 전 Vela는 CSP(Content Security Policy) 우회방법을 찾아냈습니다. 이 연구과정 중에서 jQuery Mobile의 매우 재미있는 행위를 발견하였습니다. jQuery Mobile은 location.hash 속성 중에서 임의의 URL주소를 가져오며, 그 후 innerHTML을 이용하여 가져온 URL에 대한 응답데이터를 처리합니다. 하지만 특정한 조건에서 공격자는 이러한 특징을 이용하여 웹페이지를 공격할 수 있습니다. 


이번 XSS 취약점에 대한 동작 메커니즘은 대략적으로 다음과 같습니다. 


1.  jQuery Mobile이 location.hash의 속성 값을 확인한다. 


2. 만약 location.hash중의 정보들이 url주소와 큰 차이가 없다고 판단되면, 이를 브라우저 사용 기록중에 추가한다.(history.pushState를 통해서 실현) 그 후에 XMLHttpRequest를 이용해서 방문 기록에 접근한다. 


3. 그후에 innerHTML을 사용해서 서버 측의 응답 데이터를 처리한다. 


이론상으로는, history.pushState 방법으로 XSS공격을 막을 수 있습니다. 하지만 홈페이지에 오픈 리다이렉트 취약점이 존재한다면, 공격자는 해당 보안취약점을 이용해서 공격이 가능합니다.


Vela가 공개한 데모코드는 다음과 같습니다. 


http://jquery-mobile-xss.appspot.com/#/redirect?url=http://sirdarckcat.github.io/xss/img-src.html


현재 많은 홈페이지들이 이런 유형의 공격을 막아낼 수 없는데, 그 이유는 많은 조직들이 "오픈 리다이렉트(Open Redirect)"를 보안 취약점이라고 생각하지 않기 때문입니다. 현재 구글(/search), YouTube(/redirect). Facebook(/l.php) 등 유명한 웹페이지에도 해당 취약점이 존재합니다. 


해당 취약점은 사실 매우 간단한 취약점으로, 취약점을 찾아내기도 쉽습니다. Vela는 해당 취약점을 발견한 후 jQuery Mobile 개발그룹에 제보하였지만, 해당 취약점이 사용자들의 보안을 위협할 수 있음에도 불구하고 취약점 패치가 힘들다는 답변을 받았습니다. 


만약 해당 취약점을 패치하게 된다면, 현재 정상적으로 운영되는 Web 및 어플리케이션들에 모두 영향을 줄 수 있기 때문에, jQuery Mobile 개발그룹에서는 해당 취약점에 대한 패치를 진행하지 않기로 결정한 것입니다. 


Vela가 공개한 연구보고서 중에는 다음과 같이 언급되어 있습니다. 


"jQuery Mobile 그룹에 의하면, 그들은 '오픈 리다이렉트'는 일종의 보안취약점이지만, jQuery Mobile의 이런 동작 및 URL내용 중 이러한 행위는 보안취약점이 아니다. 만약 이런 종류의 '보안 취약점'을 모두 수정한다면  현재 서비스 되고있는 웹페이지와 어플리케이션에 이상이 생길 가능성이 있어 어떠한 수정도 하지 않기로 결정했다. 이는 jQuery Mobile의 개발자들이 이 취약점에 대해 어떠한 패치도 내놓지 않을 것이라는 뜻인 동시에  jQuery Mobile을 사용하고 오픈 리다이렉트가 존재하는 웹페이지에는 XSS취약점이 존재한다는 뜻이다"


만약 타겟 홈페이지에 오픈 리다이렉트 취약점이 존재하지 않는 경우에도 공격자가 XSS취약점 공격을 할 수 있는가에 대해 연구가 진행중이지만, 아직 성공은 하지 못한것으로 확인되었습니다. 





출처 :

http://securityaffairs.co/wordpress/56144/hacking/jquery-mobile-xss.html





관련글 더보기

댓글 영역