IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Faille de la fonction htmlentities


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut [FTP] Faille de la fonction htmlentities
    Bonjour,

    depuis quelque temps, un petit malin s'amuse à modifier la page d'accueil de mo site. Il passe à chaque fois par mon formulaire d'envoie de mail.

    La partie du code qui est visée est celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mail = htmlentities($_POST['mail']);
    Vous l'aurez compris, ma variable vient d'un formulaire tout bête. Or je ne comprend pas comment il fait pour passer à travers le htmlentities, car j'ai rajouté du code de vérification des variable et le problème ne peut venir que de là.

    Or il me semblait vraiment que le htmlentities était inviolable. Avez-vous une idée de la méthode utilisée ?

    Merci

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut


    Je pense pas que ça vienne de là. Peux tu nous montrer un peu plus de code ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    De toute façon quand tu as des données dont tu connais le masque, alors tu dois utiliser les expressions régulières.
    Si tu ne le fais point, tu es passible des pires sévices

  4. #4
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Je pense que mon code est propre, mais le voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    session_start();
    if (!isset($_SESSION['login'])) {
        header ('Location: index.php');
        exit();
    }
     
    	$login = htmlentities($_SESSION['login']);
    	$mail = htmlentities($_POST['mail']);
    	$adresse = htmlentities($_POST['adresse']);
    	$destinataire = htmlentities($_POST['destinataire']);
    	$sujet = htmlentities($_POST['sujet']);
    	$message = htmlentities($_POST['message']);
     
    if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {
        if (empty($login) || empty($mail) || empty($adresse) || empty($destinataire) 
    	|| empty($sujet) || empty($message)) {
            $erreur = 'Au moins un des champs est vide.';
        }
    	else {
     
    		$headers ='From: "'.$login.'"<'.$adresse.'>'."\n";
    		$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
    		$headers .='Content-Transfer-Encoding: 8bit';
     
    		mail($destinataire,$sujet,$message,$headers);
     
    		echo 'Message correctement envoyé';
     
    	}
    }
    ?>

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Je t'invite fortement à lire cette page :
    http://www.phpsecure.info/v2/article...dersInject.php

  6. #6
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Bon je viens de lire ce document est c'est très intéressant, mais mon pirate à moi, il est pas si gentil, il fait passer des commande ftp (je peut voir des raté dans les logs) afin de modifier ma première page.

    Mais si j'ai bien compris, en mettant des caractère haxdécimaux, la fonction htmlentities devient inopérante et on peut ainsi faire de l'injection de code ?

    C'est peut être ça sa technique non ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/04/2008, 10h02
  2. [FTP] Problème avec la fonction ftp_put
    Par kamacho dans le forum Langage
    Réponses: 4
    Dernier message: 14/08/2007, 17h30
  3. [FTP] Soucis avec la fonction "unlink"
    Par Petit bateau dans le forum Langage
    Réponses: 8
    Dernier message: 05/08/2007, 22h37
  4. [Sécurité] Faille de sécurité et htmlentities
    Par kuja2053 dans le forum Langage
    Réponses: 3
    Dernier message: 28/07/2007, 13h20
  5. Que fait la fonction htmlentities ?
    Par Ravaka dans le forum Langage
    Réponses: 16
    Dernier message: 10/04/2007, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo