MySimpleNews ************ Informations : °°°°°°°°°°°°°° Langage : PHP Tested version : 1 Website : ? Problèmes : Execution de code PHP Récuperation du password admin Supression des news Developpement : °°°°°°°°°°°°°°° Comme le dit son nom, MySimpleNews est un gestionnaire de news très simple. En effet, il n'est composé que de quatre fichiers : - admin.html, qui est la page d'acceuil admin - news.php3, qui est le fichier où les news sont enregistrées et peuvent être affichées - users.php, qui est le fichier permettant d'enregistrer des news - vider.php3, qui est le fichier permettant de supprimer news.php3 Il y a donc trois fichiers admins et un fichier public (news.php3). A part admin.html, les fichiers consacrés à l'administration ne sont pas du tout sécurisés. Pour supprimer les news, il suffira de se rendre sur le fichier http://[target]/vider.php3 et pour ajouter une news, l'url http://[target]/users.php?LOGIN=[Pseudo]&DATA=[Date]&MESS=[News] Mais il y a plus interessant à faire avec users.php. Voici son code complet : ------------------------------------------------------------------------------

News Ajouté !

Pour ne pas surcharger votre page , supprimer le contenu de news.php3 quand il y a beaucoup de news !

"); fwrite($fp,"$MESS\n


"); fclose($fp); ?>

------------------------------------------------------------------------------ On voit que le script écrit directemment dans le fichier PHP. On peut alors, à la place d'un login, d'une date ou d'une news, poster du code PHP, qui sera executable sur news.php3. Par exemple, si je vais à l'url http://[target]/users.php?LOGIN=, le code PHP s'inscrira dans news.php3 et on pourra executer, si le serveur le permet et avec ses droits, des commandes systemes grâce à l'url http://[target]/news.php3?cmd=[COMMANDE] Cela serait revenu au même avec users.php?DATA=[CODE] ou users.php?MESS=[CODE]. Voyons maintenant la sécurité d'admin.html. Si on se rend sur http://[target]/admin.html, une popup javascript s'ouvrira pour nous demander le mot de passe. Si on entre un mauvais password, ou sera redirigé vers l'url "about:Erreur 403", ce qui affichera "Erreur 403" dans le webbrowser. Sinon on a accès à la partie admin. Le javascript, placé directement après la balise , ressemble à ceci (et je le commente) : ----------------------------------------------------- moncode = prompt('MySimpleNews - Administration',''); /* On ouvre une popup avec comme message 'MySimpleNews - Administration' et rien dans la zone de texte */ if (moncode != "[PASSWORD]") /* Si le texte entré est [PASSWORD] (le pass admin) */ { location.href="about:Erreur 403"; } /* on redirige vers about:Erreur 403 */ ----------------------------------------------------- Il est d'abord à savoir que, à la base, dans le javascript, il y a un password par défaut à la place de [PASSWORD], qui est "magique". Ensuite, pour récuperer le password admin, il suffira d'utiliser, par exemple, le protocole view-source:, de cette façon : view-source:http://[target]/admin.html, pour afficher la source et enfin de repérer la ligne de script "if (moncode != "[PASSWORD]")". Patch : °°°°°°° Bloquer le dossier de simplenews avec une htaccess et inclure news.php3 dans un autre fichier php. Credits : °°°°°°°°° Auteur : frog-m@n Email : leseulfrog@hotmail.com Website : http://www.frog-man.org Date : 24/09/02