Pb connexion à un espace sécurisé
                                    
                        Ptitepalou                    
                                    -
                                     
arth Messages postés 10414 Statut Contributeur -
        arth Messages postés 10414 Statut Contributeur -
        Bonjour à tous,
Sur mon site il y a une rubrique espace sécurisé, qui permet à des personnes de se connecter et d'envoyer des fichiers.
Jusque là tout fonctionnait bien, mais aujourd'hui une personne ne peut plus se connecter à son compte, un message d'erreur apparaissant : "Veuillez verifier vos identifiants et mots de passe."
J'ai alors vérifié dans la base mysql les id et mdp à entrer pour ce compte et pour se connecter ; en utilisant ces données la connexion ne fonctionne toujours pas
page de connexion :
Code :
<?php require_once("remove_by_date.php");
 
$error = $_GET['error'];
$project_name = $_GET['project_name'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
<title>Interface de partage de fichiers</title>
 
<link href="css/meyer.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
 
</head>
 
<body>
<div id="header">
<img src="logo.png" width="200" alt="logo Fenwick" title="Accueil">
</div>
 
<div id="content">
<?php IF (! empty($error)){
//selon les valeurs de erreur
IF ($error == 1) {echo '<p class="alerte">Veuillez verifier vos identifiants et mots de passe.</p>';}
else IF ($error == 2) {echo '<p class="alerte">Veuillez vous identifier.</p>';}
}
?>
<form action="login.php" method="post">
<table>
<tr><td colspan="2"><h1>Bienvenue sur l'espace securisé</h1></td></tr>
<tr><td colspan="2">Veuillez saisir votre login et votre mot de passe.</td></tr>
<tr><td>Login :</td><td><input name="project_name" id="project_name" type="text" size="20" /></td></tr>
<tr><td>Mot de passe :</td><td><input name="pass" id="pass" type="password" size="20" /></td></tr>
<tr><td colspan="2" align="center"><input name="submit" type="submit" value="OK" /></td></tr>
</table>
 
</form>
 
<?php
require_once("footer.php");
?>
page login :
Code :
<?php
include ("connexion/connexion.php");
 
 
//reception des VARIABLES
$id_user = $_POST['id_user'];
$project_name = $_POST['project_name'];
$pass = $_POST['pass'];
 
 
 
$query ="SELECT *
FROM 'user'
WHERE project_name = '$project_name'
AND pass = '".md5($pass)."' ";
 
$result = mysql_query($query);
 
$nb = mysql_num_rows($result);
 
//test
IF($nb==1){
//reussite -> redirection
// recup des reponses
$line=mysql_fetch_array($result);
 
//cr�ation de la session
session_start();
$_SESSION['project_name']= 'ok';
$_SESSION['id']= $line['id_user'];
$_SESSION['droit']= $line['droit'];
 
header("location: accueil.php");
}else{
//echec -> ecriture du log et reirection
header("location: index.php?error=1&project_name=$project_name");
}
 
?>
Je ne sais pas d'où peut venir le problème, j'entre bien le "project_name" puis le pass, il n'y a a priori pas de problèmes de code, alors peut-être manque-t-il quelque chose ?
                
            
                
    
    
    
        Sur mon site il y a une rubrique espace sécurisé, qui permet à des personnes de se connecter et d'envoyer des fichiers.
Jusque là tout fonctionnait bien, mais aujourd'hui une personne ne peut plus se connecter à son compte, un message d'erreur apparaissant : "Veuillez verifier vos identifiants et mots de passe."
J'ai alors vérifié dans la base mysql les id et mdp à entrer pour ce compte et pour se connecter ; en utilisant ces données la connexion ne fonctionne toujours pas
page de connexion :
Code :
<?php require_once("remove_by_date.php");
$error = $_GET['error'];
$project_name = $_GET['project_name'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Interface de partage de fichiers</title>
<link href="css/meyer.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<img src="logo.png" width="200" alt="logo Fenwick" title="Accueil">
</div>
<div id="content">
<?php IF (! empty($error)){
//selon les valeurs de erreur
IF ($error == 1) {echo '<p class="alerte">Veuillez verifier vos identifiants et mots de passe.</p>';}
else IF ($error == 2) {echo '<p class="alerte">Veuillez vous identifier.</p>';}
}
?>
<form action="login.php" method="post">
<table>
<tr><td colspan="2"><h1>Bienvenue sur l'espace securisé</h1></td></tr>
<tr><td colspan="2">Veuillez saisir votre login et votre mot de passe.</td></tr>
<tr><td>Login :</td><td><input name="project_name" id="project_name" type="text" size="20" /></td></tr>
<tr><td>Mot de passe :</td><td><input name="pass" id="pass" type="password" size="20" /></td></tr>
<tr><td colspan="2" align="center"><input name="submit" type="submit" value="OK" /></td></tr>
</table>
</form>
<?php
require_once("footer.php");
?>
page login :
Code :
<?php
include ("connexion/connexion.php");
//reception des VARIABLES
$id_user = $_POST['id_user'];
$project_name = $_POST['project_name'];
$pass = $_POST['pass'];
$query ="SELECT *
FROM 'user'
WHERE project_name = '$project_name'
AND pass = '".md5($pass)."' ";
$result = mysql_query($query);
$nb = mysql_num_rows($result);
//test
IF($nb==1){
//reussite -> redirection
// recup des reponses
$line=mysql_fetch_array($result);
//cr�ation de la session
session_start();
$_SESSION['project_name']= 'ok';
$_SESSION['id']= $line['id_user'];
$_SESSION['droit']= $line['droit'];
header("location: accueil.php");
}else{
//echec -> ecriture du log et reirection
header("location: index.php?error=1&project_name=$project_name");
}
?>
Je ne sais pas d'où peut venir le problème, j'entre bien le "project_name" puis le pass, il n'y a a priori pas de problèmes de code, alors peut-être manque-t-il quelque chose ?
        A voir également:         
- Pb connexion à un espace sécurisé
- Gmail connexion - Guide
- Espace insécable - Guide
- Mode sécurisé samsung - Guide
- Espace de stockage gmail plein - Guide
- Connexion chromecast - Guide
3 réponses
//reception des VARIABLES $id_user = $_POST['id_user']; $project_name = $_POST['project_name']; $pass = $_POST['pass']; $query ="SELECT * FROM 'user' WHERE project_name = '$project_name' AND pass = '".md5($pass)."' ";
Tout ceci me laisse penser à une attaque par injection SQL pour bientôt :-)
Si le mot de passe a été changé ou piraté, il faut simplement le changer dans la table des utilisateurs:
UPDATE tabledesutilisateurs SET colonneDuPassword WHERE user = 'nomDuUser';
Je te conseille quand même de regarder cette histoire d'injection SQL avant que cela arrive, surtout su le site est public.
                        
                    Bonjour, 
Merci pour ta réponse rapide.
Une attaque par injection SQL ?? oO
Super, j'ai pu modifier le mot de passe et la connexion fonctionne à nouveau. Je suis dessus depuis plusieurs heures, j'ai essayé maintes solutions et je ne trouvais pas comment modifier ce mot de passe oO (mes requetes sql ne fonctionnaient pas, la tienne non plus d'ailleurs :/ : j'ai été dans Afficher/modifier (crayon) )
Tout simplement, merci !
Si tu as le temps peux-tu m'expliquer cette attaque par injection ?? le mot fait peur ... (au passage, je n'ai jamais modifié le mot de passe et personne n'a pu le faire, et quand je remets l'ancien mot de passe la connexion ne passe pas ! bizarre)
    
                Merci pour ta réponse rapide.
Une attaque par injection SQL ?? oO
Super, j'ai pu modifier le mot de passe et la connexion fonctionne à nouveau. Je suis dessus depuis plusieurs heures, j'ai essayé maintes solutions et je ne trouvais pas comment modifier ce mot de passe oO (mes requetes sql ne fonctionnaient pas, la tienne non plus d'ailleurs :/ : j'ai été dans Afficher/modifier (crayon) )
Tout simplement, merci !
Si tu as le temps peux-tu m'expliquer cette attaque par injection ?? le mot fait peur ... (au passage, je n'ai jamais modifié le mot de passe et personne n'a pu le faire, et quand je remets l'ancien mot de passe la connexion ne passe pas ! bizarre)
                        
                    Effectivement la requête n'était pas bonne, my mistake :-) 
Concernant l'injection SQL, et à moins que la requête soit protégée dans le code de la page connexion.php, ici une petite explication très pratique :
https://fr.wikipedia.org/wiki/Injection_SQL
Dans ton cas en gros imaginons comme l'ndique le Wiki que je mette comme projet dans le champ prévu à cet effet: test' --
Ce qui veut dire que je pourrais me logguer puisque la requête se transformera alors en :
Sachant que tout ce qui est après les "--" sera considéré comme commentaire.
Comme ta vérification se porte sur le nombre de lignes retournées, qui sera égal à 1, alors n'importe qui pourrait utiliser un identifiant valide et pourrait se connecter sous cet identifiant sans avoir besoin de mot de passe. Ce qui inclut également un potentiel login admin.
  
Le loup, solitaire et mystérieux.
    
                UPDATE tabledesutilisateurs SET colonneDuPassword=md5('nouveauMotDePasse') WHERE user = 'nomDuUser';   
Concernant l'injection SQL, et à moins que la requête soit protégée dans le code de la page connexion.php, ici une petite explication très pratique :
https://fr.wikipedia.org/wiki/Injection_SQL
Dans ton cas en gros imaginons comme l'ndique le Wiki que je mette comme projet dans le champ prévu à cet effet: test' --
Ce qui veut dire que je pourrais me logguer puisque la requête se transformera alors en :
$query ="SELECT * FROM 'user' WHERE project_name = 'test' -- ' AND pass = '".md5($pass)."' ";
Sachant que tout ce qui est après les "--" sera considéré comme commentaire.
Comme ta vérification se porte sur le nombre de lignes retournées, qui sera égal à 1, alors n'importe qui pourrait utiliser un identifiant valide et pourrait se connecter sous cet identifiant sans avoir besoin de mot de passe. Ce qui inclut également un potentiel login admin.
Le loup, solitaire et mystérieux.
