*********************************************************
¦ Versions vulnérables : vuBB <= 0.2.1 [BFA]            ¦
¦ Solution             : Aucune officiel                ¦
¦ Auteur               : detruire@gmail.com             ¦
¦ Web                  : http://www.vubb.com/           ¦
*********************************************************


Problèmes
*********
- Injections SQL
- Cross Site Scripting
- Full Path Disclosure
- CRLF Injection


Injections SQL
**************
Plusieurs injections SQL sont présentes dans "admin.php" mais les droits d'administrateurs sont requis,
je ne développerai pas plus pour celles-ci. D'autres injections SQL sont présentes lors de l'inscription,
les valeurs des inputs "user" et "email" ne sont pas filtrées et sont directement utilisés dans deux
requètes SQL via des single quotes:

--start includes/functions.php--
$dupe_user = mysql_num_rows(mysql_query("SELECT * FROM `members` WHERE `user` = '".$user."'"));
$dupe_email = mysql_num_rows(mysql_query("SELECT * FROM `members` WHERE `email` = '".$email."'"));
---end includes/functions.php---


Cross Site Scripting
********************
Plusieurs failles de type XSS sont présentes dans le fichier "admin.php", je developpe pas plus.
Lors de l'enregistrement l'input "user" n'est pas filtrée et est directement interprété.

--start language/english.php--
$lang['text']['group_changed'] = "You changed " . $_POST['user'] . "'s group"; // admin.php
...
$lang['text']['reg_welcome'] = "Welcome, " . $user . ", you are now registered. Check your email for your login details.<br /><a href='".makeurl('index')."'><strong>Click Here</strong></a> to continue.";
---end language/english.php---


Full Path Disclosure
********************
Plusieurs fichiers présents dans le repertoire "includes" et "modules" font appelles a des fonctions présentes dans
d'autres fichiers appartenant à vuBB or ces fichiers ne sont points inclus ce qui génère une erreur fatal.
http://[...]/includes/ -> header.php / settings.php / vubb.php / search.php / footer.php


CRLF Injection
**************
Lors de l'inscription la variable "email" n'est pas filtrée ce qui permettrait à un attaquant d'injecter
des headers dans la fonction mail.

--start includes/functions.php--
@mail($email, 'Registration Details', $welcomeMessage, "From: No-Reply <no-reply@".$_SERVER['SERVER_NAME'].">\r\n
---end includes/functions.php---


Solution
********
S'applique uniquement pour les cas cités plus haut.
Injections SQL       => addslashes()
Cross Site Scripting => htmlentities()
Full Path Disclosure => include()
CRLF Injection       => if (eregi("\r",$email) || eregi("\n",$email)){die;}


Credits
*******
Vulnérabilités trouvées par DarkFig
URL : http://www.acid-root.new.fr/advisories/06060618.txt
Exploit : http://www.acid-root.new.fr/poc/02060618.txt


Changelog
*********
[06-06-18] -- Version initiale