Forum de Pseudos Hackers

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

25 mars 2006, 01:48

Pour empêcher les reverse-lookups (autrement dit les bases de données contenant des hashes et le texte qui les a générés) le plus simple et probablement le plus efficace est d'utiliser un sel, mais le vrai problème vient des utilisateurs: ils utilisent des mots de passe pourris. Donc cachez précieusement vos hashes et utilisez un sel (et un bon, un truc à usage unique généré aléatoirement) à chaque fois que vous devez envoyer le hash dans la nature.

Eléphant du PHP | 168 Messages

25 mars 2006, 03:15

Je me suis renseigné un peu sur le "grain de sel" et j'ai trouvé ça sur developpez.com.
1 * Cette technique est utilisée par UNIX et permet de se protéger en cas de vol du hash md5
2 * Comme une même chaîne donne toujours le même hash avec md5, si on chiffrait tous les mots de passe probables avec md5 (ou au moins un très grand nombre) on pourrrait à partir d'un hash retrouver le mot de passe en clair.
3 * La constitution d'un tel dictionnaire prend du temps et doit être faite à l'avance, toutefois elle est envisageable.
4 * La parade se fait par l'introduction d'un grain de sel qui va "déformer" le hash.
5 * Ce grain de sel est en fait un très grand nombre que l'on concatène au mot de passe avant de le chiffrer, mais un exemple éclairera tout :
$motDePasse = "toto";
$hash = md5($motDePasse);
6 * $hash contient alors f71dbe52628a3f83a77ab494817525c6 qui est le hash de toto.
7 * Si l'on avait un dictionnaire avec tous les hashs possibles, on pourrait alors associer f71dbe52628a3f83a77ab494817525c6 à toto et donc avoir le mot de passe.

8 * Maintenant, voilà une application du grain de sel :
$motDePasse = "toto";
$grainDeSel = nombreAleatoire();
$hash = md5($motDePasse.$grainDeSel);
9 * $grainDeSel n'est pas secret, est propre à chaque utilisateur et est stocké en clair dans la base de données.
10 * Pour retrouver $motDePasse à partir de $hash, il faudrait donc maintenant un dictionnaire de tous les mots de passe possibles, concaténés avec $grainDeSel.
11 * Nous avons déjà dit que la réalisation d'un dictionnaire doit être faite à l'avance, c'est à dire à un moment où on ne connaît pas $grainDeSel. Il faudrait donc réaliser un dictionnaire pour chaque grain de sel possible, ce qui est inenvisageable
mais j'ai fait un test et avec un mt_rand() pour generer un chiffre, resultat si decrypte le hash j'obtient par ex : toto145 donc j'enleve 145 et j'ai le pass .. alors j'ai du loupé un truc car c aussi simple.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

25 mars 2006, 12:00

Tu penses que la probabilité de trouver le hash de "toto123CaB0123" dans une base de données est la même que celle de trouver "toto" ?

Il y a 16^32 (3.4*10^38) hashs différents. Il est fort improbable qu'une base de données d'une telle ampleur existe un jour. La méthode pour faire du "reverse-engineering" est donc inverse : on part des mots de passe couramment utilisé et on les crypte. Si on se contente des mots de passe de 12 caractères alphanumériques ou moins on a alors Somme(138^L,L=1à12), soit environt 5*10^25, on est très loin d'exploiter toutes les possibilités que nous offre md5, en augmentant artificiellement la taille des mots de passe, et en les rendant aléatoires, on les complexifie drastiquement, et les chances que le mot apparaîsse dans ce type de base de données diminue d'autant.



Pour ajouter un grain de sel de X chiffres à vos utilisateurs c'est tout simple :

- ajout d'un champ "sel" de type "CHAR(X)"

- à l'insertion :
$sel = pow(10,X);
"INSERT INTO ... (...., pass, sel) VALUES (...., MD5(CONCAT($pass,$sel)), $sel)"
- à la vérification :
"SELECT 1 FROM ... WHERE user="$username" AND MD5(CONCAT("$password", sel))"


Cela ne modifie quasiment rien dans votre code, et ça sécurise réellement vos mots de passe, et dans 100 ans quand il existera quelques bases de données reprenant l'intégralité des hashs MD5, je pense qu'on sera passé à autre chose ;)

Eléphant du PHP | 383 Messages

29 mars 2006, 22:06

oui, pour le MD5, je vois 2 solutions : utiliser le SHA-1 ou 256, et forcer une longueur de pass suffisante... mais je tremblerais pas trop a votre place, ya du tres gos niveau :
bonjour a tous
je voulais savoir comment changé, enfin édité un code source d'une page d'un site que je ne controle pas, c'est çà dire qui n'est pas a moi?
merci a ceux qui répondront, et pour ceux qui se demandent, je ne veux qu'apprendre en le faisant sur le site d'un de mes potes...
LoL il faut trouver les pass de son ftp puis dl la page que tu veux changer, la modifier et puis la reupp (enfin je croit donc si je me trompe merci de me le dire !)

je precise que la persone qui repond est referencée comme "advanced member".....

Eléphant du PHP | 187 Messages

29 mars 2006, 22:54

Un DOS me parait approprié pour l'envoyer contre des cons pareils. Ils utilisent des exploits, on va les servir avec du piratage de merde. Maintenant est-ce que je risque quelque chose en leur envoyant une attaque DOS. Parceque ca me ferait chier de me retrouver en tole a cose de ca...

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

29 mars 2006, 23:00

un DoS efficace est un DoS relayé par des PC zombies, et ça c'est grave :)
Donc soit tu passes pour un rigolo, soit tu risques gros, je trouve que le jeu est loin d'en valoir la chandelle.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

30 mars 2006, 00:45

oui, pour le MD5, je vois 2 solutions : utiliser le SHA-1 ou 256, et forcer une longueur de pass suffisante... mais je tremblerais pas trop a votre place, ya du tres gos niveau :
bonjour a tous
je voulais savoir comment changé, enfin édité un code source d'une page d'un site que je ne controle pas, c'est çà dire qui n'est pas a moi?
merci a ceux qui répondront, et pour ceux qui se demandent, je ne veux qu'apprendre en le faisant sur le site d'un de mes potes...
LoL il faut trouver les pass de son ftp puis dl la page que tu veux changer, la modifier et puis la reupp (enfin je croit donc si je me trompe merci de me le dire !)

je precise que la persone qui repond est referencée comme "advanced member".....
Il existe des méthodes non-informatiques pour choper le mot de passe FTP d'un ami :)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 mars 2006, 01:17

Il existe des méthodes non-informatiques pour choper le mot de passe FTP d'un ami :)
Le charme :love5:

La force :axe:

:lol:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 417 Messages

30 mars 2006, 09:30

---
Modifié en dernier par JazzFinder le 28 juin 2006, 15:29, modifié 1 fois.

Eléphant du PHP | 187 Messages

30 mars 2006, 10:07

Bon ok donc on va oublier le DoS.
@naholyr : je ne pensais pas à un DDoS mais plutot a un truc du genre pingofdeath. Sans les surcharger, au bout du quinzieme paquet mal formater, le serveur plante... et une requete ICMP mal formaté, c'est pas si difficile que ca a coder en php (pour qu'elle soit envoyée regulierment).
Toujours est-il qu'on va s'en tenir aux moyens légaux :?

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

30 mars 2006, 10:59

@netsupra : en même temps ça vaut le coup d'essayer, si jamais ça marche c'est honteux puisque ça signifiera qu'ils ont un serveur web qui n'est pas derrière un pare-feu avec IPS, ce qui est totalement suicidaire et indigne du moindre admin réseau un peu compétent.

Mammouth du PHP | 1967 Messages

30 mars 2006, 16:47

La divination :merci:
L'hypnose :shock:
Le hasard :google:
L'acharnement :ordi:
Le phishing: :love7:
La patience :-"
La force brute ](*,)
La prière :agenouille:
La pensée magique :-k
...
l'alcool :boire9:
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 417 Messages

30 mars 2006, 17:21

---
Modifié en dernier par JazzFinder le 28 juin 2006, 15:30, modifié 1 fois.

ViPHP
ViPHP | 656 Messages

17 avr. 2006, 06:27

Purée ils ne savent même pas écrire français...
Enfin une bataille gagnée...mais la guerre est loin d'être terminée :roll:

Ils continuent leur cirque ici
J'envoie un email a IPS parce qu'ils ont une version piratée de IPB :

Il y a ceci dans la version piratée http://www.unknown-team.com/skin_acp/IP ... nulled.gif car je l'avais déja vu chez quelqu'un.

ViPHP
ViPHP | 656 Messages

17 avr. 2006, 06:35

:langue: The URL: www.unknown-team.com has already been reported - thanks!