Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1847 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  bruteforce en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bruteforce en php

n°2034495
pimsa
Posté le 07-11-2010 à 15:52:46  profilanswer
 

Bonsoir,
 
Je souhaite réaliser un programme de bruteforce en php.
Ce programme doit être capable de casser un formulaire qui possède un seul simple input password. Je passe les combinaisons possibles par Curl.
Mon problème c'est comment générer en php toutes les combinaisons de password possibles? (sans passer par la génération d'un volumineux fichier txt, mais bien à la volée)
 
exemple à partir de

Code :
  1. $chars='abcdefz123456789';


 
puis la vars $pass vaut une combinaison possible, sachant que le pass fait entre 6 et 8 caractères par exemple.
 
merci

mood
Publicité
Posté le 07-11-2010 à 15:52:46  profilanswer
 

n°2034496
stef_dober​mann
Personne n'est parfait ...
Posté le 07-11-2010 à 16:07:21  profilanswer
 

Dans quel but :??:
on pas là pour cracker des sites...


---------------
Tout à commencé par un rêve...
n°2034497
pimsa
Posté le 07-11-2010 à 16:08:27  profilanswer
 

je l'attendais :sleep:  
 
but pédagogique. je m'amuse. :)  
 
 :jap:

n°2034498
pimsa
Posté le 07-11-2010 à 16:17:52  profilanswer
 

sachant qu'en plus il existe déjà des outils pour faire ça (plugin fireforce, brutus, etc)...

n°2034500
flo850
moi je
Posté le 07-11-2010 à 16:31:39  profilanswer
 

tu sais utiliser curl, mais pas permuter des caractères ?

n°2034501
pimsa
Posté le 07-11-2010 à 16:41:21  profilanswer
 

je vois pas comment ordonner les combinaisons en fait. j'essaye d'imaginer la méthode, après techniquement j'en suis certainement capable.
 
genre littéralement ça donnerait:
 
aaaaaa
aaaaab
aaaaba
aaabaa
aabaaa
abaaaa
baaaaa
aaaaac
aaaaca
etc
 
je vais oublier de tester certaines combi c'est sûr  :D

n°2034502
pimsa
Posté le 07-11-2010 à 16:44:22  profilanswer
 

c'est plus une question d'efficacité, un truc de matheux quoi  :D  
je sens que je vais pondre un truc de 300 lignes alors que ça doit être faisable en 30  :o  
 
je vais voir s'il existe pas une librairie bruteforce tiens...

n°2034504
pimsa
Posté le 07-11-2010 à 16:46:27  profilanswer
 

c'est sur l'algorithme que je galère en gros

n°2034508
flo850
moi je
Posté le 07-11-2010 à 16:50:43  profilanswer
 

c'est faisable en moins de 5 lignes :/
mais c'est pas des maths, juste de l'algo basique

Code :
  1. function generate($length,Array $chars,$prefix){
  2.    if($length ==0) {/*lancer ta requete ici */}
  3.    foreach($chars as $char)  generate($length -1,$chars,$prexix.$char);
  4. }


ajoute juste une petite modif pour qu'il s'arrete une fois qu'il a trouvé un bon mot de passe ( et si tu tentes ça sur ce forum , tu vas avoir droit a un ban )


Message édité par flo850 le 07-11-2010 à 16:52:10
n°2034512
pimsa
Posté le 07-11-2010 à 17:24:37  profilanswer
 

pas compris  :heink:

mood
Publicité
Posté le 07-11-2010 à 17:24:37  profilanswer
 

n°2034513
flo850
moi je
Posté le 07-11-2010 à 17:30:14  profilanswer
 

pas compris quoi ?

n°2034517
sircam
I Like Trains
Posté le 07-11-2010 à 18:01:06  profilanswer
 

- Déroule le code de flo sur papier. Il te manque le premier appel pour lancer le schmilblick mais c'est trivial (length=6 par exemple, chars=a..z, prefix vide)
 
- Ce code ne donne que des combinaisons de longueur fixe, mais c'est bien pour commencer (et obtenir les combos pour les longueurs de 6 à 8 est aisé)
 
- C'est sans doute un peu bête de ne pas se baser sur un dictionnaire
 
- Le multi-threading sur la partie réseau (exécuter les requêtes HTTP) est des plus indiqués pour ce genre d'exercice mais c'est déjà bien plus avancé.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°2034518
pimsa
Posté le 07-11-2010 à 18:13:23  profilanswer
 

ok ok, bon j'ai ça et ça fonctionne merci
 

Code :
  1. $charset = 'abcdefghijklmnopqrstuvwxyz';
  2. //$charset .= '0123456789';
  3. //$charset .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  4. //$charset .= '~`!@#$%^&*()-_\/\'";:,.+=<>? ';
  5. $charset_length = strlen($charset);
  6. function recurse($width, $position, $base_string)
  7. {
  8. global $charset, $charset_length;
  9. for ($i = 0; $i < $charset_length; ++$i) {
  10.  if ($position  < $width - 1) {
  11.   recurse($width, $position + 1, $base_string . $charset[$i]);
  12.  }
  13.  check($base_string . $charset[$i]);
  14. }
  15. }
  16. recurse(4, 0, '')


 
et la fonction check() avec du Curl dedans  :o  
 
pas contre c'est ultra lent, y'a le probleme du max execution time d'une part, et celui du multithreading d'autre part pour les pass qui font plus de 6 caractères...
et ça

n°2034519
pimsa
Posté le 07-11-2010 à 18:14:30  profilanswer
 

ne test que des combi fixes (ici 4) comme tu le fait remarquer. à améliorer donc...
bon en même temps du bruteforce en php, avec du curl pour chaque combinaison à tester, ouch  :whistle:

n°2034521
sircam
I Like Trains
Posté le 07-11-2010 à 18:25:57  profilanswer
 

Beh ouais, ça reste très rudimentaire comme mise en œuvre. [:spamafote]
 
Il faudrait pour être sérieux :
- Stockage des combinaisons déjà essayées (là où on est arrivé), pour reprendre en cas de plantage ou interruption;
- Throttling pour ne pas agacer le serveur;
- Un dictionnaire
- Peut-être pas du récursif (?)
- Peut-être autre chose que PHP
- Du multithreading  [:fumble]  
- ...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°2034557
GordonF_69
Posté le 08-11-2010 à 02:31:52  profilanswer
 

Si c'est pour un brute force efficace, utilise plutot "wfuzz" :O


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  bruteforce en php

 

Sujets relatifs
Plus de sujets relatifs à : bruteforce en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR