상세 컨텐츠

본문 제목

SharePoint Reflected XSS 취약점(CVE-2017-8514) 분석

국내외 보안동향

by 알약(Alyac) 2017. 6. 29. 15:50

본문

SharePoint에서 XSS 취약점(CVE-2017-8514)이 발견되었습니다. 이 취약점은 패키지 버전 및 온라인 버전에 모두 존재하며, 현재는 모두 패치가 완료되었습니다. 


PoC는 다음과 같습니다. 


http|https://<Any SharePoint URL Goes Here>?FollowSite=0&SiteName='-confirm(document.domain)-'


독일의 레드먼드매거진에 따르면, SharePoint와 OneDrive는 7.5만명이 넘는 고객이 사용중에 있으며, 1.6억명의 고객을 확보하고 있다고 합니다. 


SharePoint의 핵심기능은 바로 공유 기능인데, SharePoint가 제공하는 "Follow" 기능을 이용하여 손쉽게 다양한 정보들에 대한 업데이트 내역 확인이 가능합니다. 



이때 SharePoint는 다음과 같은 POST request를  보내게 됩니다. 



bbmsft.sharepoint.com/_vti_bin/client.svc/ProcessQuery


또한 "Share"버튼을 클릭하면, 다른 사람과 자신의 페이지를 공유할 수 있는데, 일단 공유요청을 하면, 요청을 받는 사용자는 다음과 같은 이메일을 받게 됩니다. 





"Follow"기능은 이메일 내용의 일부분으로, GET request 형식으로 제공됩니다. 


https://bbmsft.sharepoint.com/?FollowSite=1&SiteName=<AnySiteNameGoesHere>


해당 URL은 두개의 GET 매개변수, 즉 FollowSite=1과 SiteName=\<AnySiteNameGoesHere\>를 포함하고 있습니다. 


그 중 FollowSite 매개변수는 부울값으로, 0혹은 1로 설정할 수 있습니다. 우리가 자세히 보아야 할 것은 SiteName매개변수 입니다. 


```&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;

<script type="text/javascript">

//<![CDATA[

...

SP.SOD.executeFunc('followingcommon.js', 'FollowSiteFromEmail', function() { FollowSiteFromEmail('ReflectionHere'); });

...

//]]>

</script>

```


위 코드에서 볼수 있듯이, 개발자는 작은따옴표를 사용하여 ReflectionHere을 불러냅니다. 테스트 결과, 몇몇 위험한 특수부호들 '、<、> 및  /가 인코딩 되지 않았습니다. 간단히 말해서 '-confirm(document.domain)'와 같은 XSS Payload가 동작할 수 있다는 뜻이기도 합니다. 하지만  URL중에 반드시 GET 매개변수가 존재하는 상황에서만 위에서 언급한 JavaScript코드가 있어야만 동작이 가능합니다. 











출처 : 

http://respectxss.blogspot.kr/2017/06/a-look-at-cve-2017-8514-sharepoints.html

관련글 더보기

댓글 영역