begin process at 2012 05 31 01:24:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Problème avec MD5


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec MD5

lundi 7 février 2011 à 12:06:53 | Problème avec MD5

debbv

Salut à tous ,
Je viens par ce message vous présenter une faille que j'ai avec une application que j'ai eu à developper. La faille se trouve au niveau de la zone de connexion.
Pb :
- Au fait j'ai une page login.php dans laquelle un user va saisir son login et son passwd.Cette page va sur une autre page appélée REDIRECT.PHP
- REDIRECT.PHP cherche si le login et le passwd MD5 existe dans ma base MYSQL .et affiche une page accueil.php si c bon ou error.php si c pa bon.
La faille : un user entre test et 1234 ça passe car ce compte existe dans la base (Page acceuil.php).
mais s il entre test et 1234' il a accès a la Page acceuil.php .
Or 1234 et 1234' sont differents .
////////////////////////////////////////////////////////////////////////////////
Mon code : Redirect.PHP
///////////////////////////////////////////////////////////////////////////////
<?php
// REDRIRECTION PASSWORD

require 'config.php';
$connect = mysql_connect ("localhost","root",$password);// or die('Erreur de connexion'.mysql_error());
mysql_select_db ($base);////or die('Erreur de connexion'.mysql_error()) ;
$log=mysql_real_escape_string($_POST['log']);
$mdp2=mysql_real_escape_string($_POST['pwd']);
$mdp=MD5($login + "zo5pro$1pvkhj6cz4a8ùtvb#ui4oeuio" + $mdp2 +$login+$mdp2);
$sql = "select * from compte where login='$log' and pass='$mdp' ";
$req = mysql_query($sql);
$num = mysql_num_rows($req);
if ($num >=1)
{
session_start();
$_SESSION['log']=$log;
$_SESSION['mdp']=$mdp;
header('Location:accueil.php');

}
else
{
header('Location:error_pass32.php');

}
//}
?>

////////////////////////////////////////////////////////////////////////////
Mon HASH a la création du compte
////////////////////////////////////////////////////////////////////////////
$mdp=MD5($login + "zo5pro$1pvkhj6cz4a8ùtvb#ui4oeuio" + $mdp2 +$login+$mdp2);


//////////////////////////////////////////////////////////////////////////////////
Merci et je compte sur vous
////////////////////////////////////////////////////////////////////////////////
Mon application marche sur près de 90 Positions et des infos ne doivent pas être vue par tout les users
Et je suis le seul a savoir k il ya faille actuellement
lundi 7 février 2011 à 12:13:56 | Re : Problème avec MD5

debbv

Ce que je vois 1234 et 1234'
ont le même HASH
lundi 7 février 2011 à 18:10:03 | Re : Problème avec MD5

phpAnonyme

lut,

Deux choses :
- $log n'est pas défini
- Addition et concaténation sont deux choses différentes

Correction :


$login=mysql_real_escape_string('test');
$mdp2=mysql_real_escape_string("1234");
$mdp_TEST1=MD5($login . "zo5pro$1pvkhj6cz4a8ùtvb#ui4oeuio" . $mdp2 .$login.$mdp2);

var_dump($mdp_TEST1);

$login=mysql_real_escape_string('test');
$mdp2=mysql_real_escape_string("1234'");
$mdp_TEST2=MD5($login . "zo5pro$1pvkhj6cz4a8ùtvb#ui4oeuio" . $mdp2 .$login.$mdp2);

var_dump($mdp_TEST2);

if($mdp_TEST1===$mdp_TEST2)
echo "faille !!";
else
echo "correct";



______________________________________________________________________
mardi 8 février 2011 à 00:43:41 | Re : Problème avec MD5

TychoBrahe

Salut,

Afin de compléter la juste remarque de phpAnonyme, je vais expliquer le pourquoi du comment de l'histoire :

Afin de réaliser l'addition (et non la concaténation), les chaînes de caractères sont converties en leur valeur décimale (ou flotante). Ainsi, une chaîne ne représentant pas de nombre est convertie en 0 et, si sa première portion représente un nombre (mais pas la suite), alors elle sera convertie en ce nombre (donc 1234' est convertis en 1234). Si on refais l'addition dans ce sens, le "$login + "zo5pro$1pvkhj6cz4a8ùtvb#ui4oeuio" + $mdp2 +$login+$mdp2" revient à : "0 + 0 + 1234 + 0 + 1234", soit 2468 dans les deux cas, d'où l'égalité des md5.

Pour s'en persuader :
Code PHP :
<?php

var_dump(null + "zo5pro$1pvkhj6cz4a8ùtvb#ui4oeuio"); // 0                       
                                                                                
var_dump(0 + "1234"); // 1234                                                   
var_dump(0 + "1234'"); // 1234                                                  

var_dump(1234 + 'test'); // 1234                                                

var_dump(1234 + "1234"); // 2468                                                
var_dump(1234 + "1234'"); // 2468                                               

?>


Plus d'informations :
Conversion de chaînes en nombres
La précédence des opérateurs


Cette discussion est classée dans : page, php, login, md5, faille


Répondre à ce message

Sujets en rapport avec ce message

execution php [ par elanspeech ] Bonjour,J'ai installe php4.3.1, la page php de login s'execute et me demande login et mot de passe.J'entre les informations, la reexcution de la page ma session ne fonctionne pas a la première connexion [ par jojolafrite ] bonjour g un petit problème de session pour la création d'une section membrepour cela g trois fichier:logadmin.php(page de login)veriflog.php(script q variables de session [ par tweeder ] BonjourJ'ai posé la question plus tôt cette semaine mais je crois que je m'étais mal exprimévoila j'aimerais récupérer ma variable de session enregist Faille Include [ par FearBlue ] Slt a tousVous connaissez surement tous la faille Includeenfin plus l'erreur de bcp de programmeurs php débutants.L'autre jour j'ai vu que si on faisa session admin [ par Auklaar ] salut à tous! voila je me met au php petit à petit mais la j'ai un problème.j'ai une page index ou j'ai un formulaire avec password et login je clique sessions [ par gegelarep ] bonjour,je suis dans une page ouverte par une session qui porte une url du type http://www.site.com/fr/majprod?produit=591et j'aimerai dire au program session en php helppp please [ par emeraudes ] bonjourvoila je suis en 2eme année de bts informatique de gestion et je code un site en php.sur mon site il y a a gauche une frame pour pouvoir se log problème avec les sessions [ par progrima ] Bonjour tout le monde!!Je veux utiliser les sessions pour garder l'information q'un utilisateur est bien connecté en passant de page en page. Pour cel Pertes des variables de sessions après changement de page via javascript [ par gautier ] Lu tout le monde, première chose, je suis un newbe dans la programmation PHP (plus habituer à Java et C#),J'ai juste fais un petit site avec sur la pa un espace membre bien complet (si vous connaiser un partie de ce que je cherche dite le ) [ par astuces_jeux ] slt c'est pour savoir comment créer un espaces membres bien complet pour commencer la page membre avec login et mot de passe et une inscription plus e


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales