[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FD] SharePoint Site User Enumeration



<html><head></head><body><div style="font-family: Verdana;font-size: 
12.0px;"><div style="font-family: Verdana;font-size: 12.0px;">
<div style="font-family: Verdana;font-size: 12.0px;">
<div>
<div style="border-bottom: solid rgb(237,125,49) 1.0pt;padding: 0.0in 0.0in 
2.0pt 0.0in;">
<h1>Office 365 Security</h1>

<h1>SharePoint Site User Enumeration</h1>
</div>

<h2>Category</h2>

<p>Insecure direct object reference</p>

<p>&nbsp;</p>

<h2>Synopsis</h2>

<p><a href="https://products.office.com/en-us/sharepoint/collaboration"; 
target="_blank">SharePoint</a> is a web-based, collaborative platform that 
integrates with Microsoft Office. Among other features, it allows corporate 
users to share content with third parties, either via third-party invites or 
anonymous links.</p>

<p>SharePoint allows such third parties to list usernames associated with a 
particular site collection. This broad enumeration is possible even if the 
attacker is allowed to access only very limited site content, such as a single 
document.</p>

<p>In the extreme the attacker can acquire list of all customer internal users 
and their SharePoint partners, which would facilitate both customer-wide and 
targeted phishing and other social-engineering attacks, impersonating either 
the corporate customer or one of the partners.</p>

<p>Such disclosure can also represent legal exposure and business 
confidentiality risks for SharePoint customers.</p>

<p>&nbsp;</p>

<h2>Technical Details</h2>

<p>By design SharePoint provides functionality to access user information 
associated with content published on a site. However, this feature appears to 
be intended solely for regular corporate users of the site, not for third-party 
guests with limited access.</p>

<p>The initial HTTP request is:</p>

<p class="Technical" style="margin-left: 40.0px;"><a 
href="https://somecustomer.sharepoint.com/sites/somesite/_layouts/15/userdisp.aspx?ID=ParamA";
 
target="_blank">https://somecustomer.sharepoint.com/sites/somesite/_layouts/15/userdisp.aspx?ID=ParamA</a></p>

<p>where ParamA is some integer value. The request results in a 302 redirect to 
another customer&rsquo;s site:</p>

<p class="Technical" style="margin-left: 40.0px;"><a 
href="https://somecustomer-my.sharepoint.com/Person.aspx?accountname=ParamB"; 
target="_blank">https://somecustomer-my.sharepoint.com/Person.aspx?accountname=ParamB</a></p>

<p>where ParamB is a result of resolving a site collection-specific ordinal 
value of ParamA to a structured string that includes the corresponding 
username:</p>

<p class="Technical" style="margin-left: 
40.0px;">i:0#.f&#124;membership&#124;someuser@xxxxxxxxxxxxxx</p>

<p>Following this first HTTP redirection results in another 302 redirect to 
authenticate the user:</p>

<p class="Technical" style="margin-left: 40.0px;"><a 
href="https://somecustomer-my.sharepoint.com/_layouts/15/Authenticate.aspx?Source=ParamC";
 
target="_blank">https://somecustomer-my.sharepoint.com/_layouts/15/Authenticate.aspx?Source=ParamC</a></p>

<p>where ParamC is the original URL of the second request.</p>

<p>The core weakness in the flow is that this user information retrieval 
sequence is intercepted on the second request while the first request succeeds 
as long as it includes cookies acquired through exercising third-party access 
to some content in the given site collection. Even an anonymous, view-only link 
to a single shared file suffices.</p>

<p>In other words, the resolution of simple ordinals (ParamA) to actual 
identities (ParamB) happens prematurely, before the security access controls 
divert the redirection chain of HTTP requests.</p>

<p>Submitting the first request without any cookies or with cookies pertinent 
to unrelated SharePoint customer will result in immediate authentication 
interception so result of the username resolution is not revealed.</p>

<p>&nbsp;</p>

<h2>Exploitation</h2>

<p>This weakness is exploitable as a classic insecure direct object reference. 
An attacker first accesses some shared content and preserves acquired cookies. 
He then uses the cookies to submit a series of requests for userdisp.aspx, 
iterating through integer values of ParamA, either randomly or sequentially, 
and harvesting resolved usernames.</p>

<p>Valid ordinals in ParamA appear to be assigned sequentially, starting with 
single digits, so the parameter space exhibits minimal entropy, enabling the 
enumeration to be highly efficient. The attack can be also parallelized because 
the submitted requests are independent of each other. (As an example, there is 
no sequential per-request CSRF token.)</p>

<p>No volume throttling or other mitigations have been observed.</p>

<p>&nbsp;</p>

<h2>Microsoft Response</h2>

<p>Sharing a SharePoint document link with a third party &quot;<em>implies a 
certain degree of trust, the product team will not be modifying the current 
behavior in a security update, as this behavior is considered 
&quot;by-design</em>&quot;.</p>

<p>&nbsp;</p>

<h2>Timeline</h2>

<p class="Timeline">February 5, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Issue identified and documented</p>

<p class="Timeline">February 6, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Report submitted to Microsoft via secure@xxxxxxxxxxxxx</p>

<p class="Timeline">February 7, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Report acknowledged by Microsoft, case number assigned</p>

<p class="Timeline">February 14, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 First status update request sent to Microsoft. Microsoft advises that the 
&quot;SLA&quot; is March 23.</p>

<p class="Timeline">March 20, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Microsoft requested an HTTP trace</p>

<p class="Timeline">March 21, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Sanitized HTTP trace and evidence of successful enumeration attack provided to 
Microsoft</p>

<p class="Timeline">March 26, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Previously stated deadline expired without any communication. New status 
update request sent to Microsoft.</p>

<p class="Timeline">March 28, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Microsoft confirmed the issue and requested postponement of public 
disclosure.</p>

<p class="Timeline">April 13, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Status update request sent to Microsoft</p>

<p class="Timeline">April 17, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Microsoft sends a note about ongoing discussions how to best address the 
issue.</p>

<p class="Timeline">May 22, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Status update request sent to Microsoft</p>

<p class="Timeline">May 25, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Microsoft stated that this is a &quot;by-design&quot; behavior, not warranting 
further action.</p>

<p class="Timeline">May 28, 
2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 Public disclosure</p>

<p class="Timeline">&nbsp;</p>

<h2>License</h2>

<p>This document is &copy; 2018 pzpcve</p>

<p>The document content is licensed under a <a 
href="https://creativecommons.org/licenses/by/4.0/legalcode"; 
target="_blank">Creative Commons Attribution 4.0 International license</a></p>

<p>&nbsp;</p>
</div>

<div>&nbsp;</div>

<div class="signature">&nbsp;</div>
</div>
</div></div></body></html>

Attachment: SharepointUserEnumeration-180528-FullDisclosure.pdf
Description: Adobe PDF document

_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/