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

PHP & Base de données Discussion :

Faille SQL depuis site php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut Faille SQL depuis site php
    Bonjour,
    Je suis étudiant et j'aimerai faire des attaques sql sur ma base donnée je vous envoi mes fichiers de configuration, je pense que mon attaque devrait fonctionner, je me demande si ce n'est pas ma base de donnée qui contre les attaques.

    J'ai deux fichiers un fichier qui me créer un formulaire pour entrer mes identifiants et un deuxième qui fait la connexion à la base mysql.
    J'ai entrer ' OR 1=1 OR 1=' comme identifiant et je ne comprend pas pourquoi la faille ne fonctionne pas. avez-vous une idée?

    formulaire.html
    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
     
    <html> 
    <head> 
    <title>Connexion au site</title> 
    </head> 
    <body> 
    <form method="post" action="5_connexion.php"> 
    <table border="0" width="400" align="center"> 
    <tr> 
    <td width="200"><b>Vôtre login</b></td> 
    <td width="200"> 
    <input type="text" name="login"> 
    </td> 
    </tr> 
    <tr> 
    <td width="200"><b>Vôtre mot de passe<b></td> 
    <td width="200"> 
    <input type="password" name="password"> 
    </td> 
    </tr> 
    <tr> 
    <td colspan="2"> 
    <input type="submit" name="submit" value="login"> 
    </td> 
    </tr> 
    </table> 
    </form> 
    </body> 
    </html>

    connexion.php
    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
     
    <?php 
    ini_set('display_errors','off'); 
    $host = "localhost"; /* L'adresse du serveur */ 
     
    $login= $_POST['login']; 
    $password = $_POST['password']; 
     
    global $host, $login, $password, $base; 
    $db = mysql_connect($host,$login,$password ); 
     
     
    echo "l'identidiant est : "; 
    echo $login; 
    echo " le mot de passe est :" ; 
    echo "$password"; 
     
     
    if ($db==FALSE) { 
    echo "Erreur de connexion à la base de donnée"; 
    }	
    else { 
    echo "Connexion réussi avec l'utilisateur : "; 
    echo $login; 
     
    } 
     
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les injections SQL ont lieu lors des requête, pas sur la connexion à la base de données.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    sur sabotage
    De plus, en général, les identifiants de connexion à la bdd ne sont pas renseignés par formulaire, ils sont en dur dans le code ou éventuellement dans un fichier de configuration.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Tu as un exemple ici.
    Mais je dirai que c'est un peu de l'histoire ancienne car les injections sql ne sont plus possibles avec les requêtes préparées que l'on conseille systématiquement aujourd'hui (au moins pour les requêtes contenant des données utilisateurs) avec mysqli ou pdo. L'abstraction qui est réalisée fait que les variables ne peuvent plus être interprétées comme faisant partie du code de la requête.

  5. #5
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut
    Merci grâce a vous j'ai pu finir, mon injection fonctionne
    j'ai réussi avec 'OR 1=1 OR 1='

    oui j'ai lu déjà que c’était obsolète mais c’était pour des tests, je voulait arriver à le faire.

    Voila mon code pour ceux qui serait intéresser.

    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
    34
    35
    36
    37
    38
    39
    40
     
    <?php
    ini_set('display_errors','off');
    $host = "localhost"; /* L'adresse du serveur */
     
     
     
    global $host, $login, $password, $base;
    $db = mysql_connect($host,"root","mysql");
     
     
    echo "l'identidiant est : ";
    echo $login;
    echo "  le mot de passe est :" ;
    echo "$password";
     
     
    if ($db==FALSE) {
    	echo "Erreur de connexion à la base de donnée";
    }	
    else {
    	echo "Connexion réussi avec l'utilisateur : ";
    	echo $login;
     
    }
     
    mysql_select_db("BASE");
     
    $deb="SELECT id FROM mabase WHERE nom = '".$_POST["nom"]."' AND prenom = '".$_POST["prenom"]."'";
    $req=mysql_query($deb) or die(mysql_error());
    if (mysql_num_rows($req)>0) {
    echo "Yes tu est connecter";
     
    }
    else {
    echo "Non tu n'est pas connecter";	
     
    }
     
    ?>

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    On peut très bien utiliser PDO ou mysqli et avoir quand même des failles SQL : il suffit de ne pas utiliser correctement les requête préparées (ou de ne pas les utiliser tout court)
    C'est comme avoir une porte blindée avec une serrure 5 points comme porte d'entrée : si tu ne verrouilles pas la serrure, ça ne sert à rien.

    @franck : bien, maintenant, il faut écrire le même code, mais bien protégé
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [SQL] Executer un script SQL depuis php
    Par sly3333 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/12/2007, 01h33
  2. [SQL] Importer un fichier sql depuis PHP
    Par TNorth dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/05/2006, 18h39
  3. Réponses: 4
    Dernier message: 30/05/2006, 17h14
  4. Réponses: 11
    Dernier message: 10/01/2006, 07h23

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