Problemes de sécurité dans le portail Phortail
**********************************************
Produit :
*********
Phortail
Versions :
**********
1.2.1 et moins.
Date :
******
01/03/02
Problemes :
***********
- Mauvaise utilisation des cookies
- Aucune restriction dans les news
Developpement :
***************
Phortail est un portail en PHP ( testé sur apache/php4).
Commencons par le probleme du cookie :
mdp.php :
-------------------------------------------------------------------
$mdp = "pass";
?>
-------------------------------------------------------------------
admin.php :
-------------------------------------------------------------------
include("mdp.php");
$novisites = 1;
if ($pass == $mdp) {
setcookie("phortailAdmin", $mdp, time() + (3600*24*30));}
elseif ($logout == 1) {
setcookie("phortailAdmin", "");
header("Location: admin.php");}
?>
-------------------------------------------------------------------
Le mot de passe est donc envoyé directement et non crypté par un cookie qui a comme nom
phortailAdmin.
Remarque :
En fait, même si il le mot de passe envoyé dans le cookie était crypté, ça n'enleve
rien à la vulnérabilité. Récupéré, il peut toujours être envoyé "artificiellement".
La seule difference est que l'attaqueur ne connait pas le mot de passe, mais il
a toujours un accès admin.
La deuxieme insécurité est dans la base du portail : le postage de news.
Les news ne sont pas vérifiées par l'admin mais directement envoyées sur le site.
Il y a 4 champs à remplir pour envoyer une news sur phortail : l'email, le nom,
le titre et la news.
Si on entre dans la news, le nom ou le titre, un script, java ou autre, il sera
directement exécuté sur la page d'acceuil.
Conséquence :
Quelqu'un pourrait, pour recuperer un mot de passe admin, poster une news de ce genre :
Ce qui aurait pour effet d'ouvrir une popup qui enverrai le password.
Ce script ne pourrait fonctionné envoyé de cette façon :
car le fichier poster.php ajoute la balise
à chaque fin de ligne, ce qui donnerait
quelque chose du genre :