|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
BRUTEFORCE AVEC GESTION DU TIMEOUT
Description
Une page qui génère des combinaisons par bruteforce. Elle est différente des autres car elle permet une reprise du bruteforce si on a décidé de l'arrêter, et elle permet de contourner la limite timeout si il est impossible de modifier ce paramètre dans le php.ini. Modification : Il y a plusieurs types de chaines générées : pour en changer, il faut mettre comme URL bruteforce.php?type_car={type de chaine demandée} : Les types sont: chaines alphabétiques ( ?type_car=alpha ) chaines alphabétiques seulement en minuscules ( ?type_car=alpha_min ) chaines alphabétiques seulement en majuscules ( ?type_car=alpha_maj ) chaines numériques ( ?type_car=num ) chaines biaires : 0/1 ( ?type_car=bin ) chaines alphanumériques ( ?type_car=alphanum ) fragments d'ADN : liste des 4 nucléotides (?type_car=adn ) Par défaut, les chaines générées sont alphanumériques. Il est bien sûr possible de rajouter des types, et des caractères à la listre par défaut.
Source
- <?php
- global $timeout;
- $timeout = 2; //valeur du timeout diminué de 1 par exemple
- ?>
- <script type='text/javascript'>
- setTimeout("window.location.reload(true)", <?php echo $timeout; ?>000);
- </script>
- <?php
- global $start;
- $start = time();
- global $alphabet;
- if(isset( $_GET['type_car']) ){
- $type = $_GET['type_car'];
- switch($type){
- case "alpha":
- $alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
- break;
- case "alpha_min":
- $alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
- break;
- case "alpha_maj":
- $alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
- break;
- case "num":
- $alphabet = array('0','1','2','3','4','5','6','7','8','9');
- break;
- case "bin":
- $alphabet = array('0','1');
- break;
- case "adn":
- $alphabet = array('A','T','G','C');
- break;
- case "all":
- $alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
- break;
- default:
- $alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
- break;
-
- }
- } else {
- $alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
- }
- function new_mot( $prec_mot , $more = '' ){
- global $alphabet;
- if( eregi( '^' . $alphabet[count($alphabet)-1] . '+$' , $prec_mot ) ){
- for( $i = 0; $i < strlen($prec_mot); $i++){
- $nouv_mot .= $alphabet[0];
- }
- $nouv_mot .= $alphabet[0];
- return $nouv_mot;
- }
- $last_lettre = $prec_mot{strlen($prec_mot)-1};
- $pos_l = array_search( $last_lettre, $alphabet );
- $pre = substr( $prec_mot , 0 , strlen( $prec_mot) -1 );
- if( $pos_l == count( $alphabet )-1 ){
- $ret = new_mot($pre, 'add');
- }
- if($pos_l != count( $alphabet )-1 ) {
- $n_pos = $pos_l + 1;
- $ret = $pre.$alphabet[$n_pos] ;
- }
- if( $more != '' ) {
- $ret .= $alphabet[0];
- }
- return $ret;
- }
- function bruteforce( $precedent_mot ){
- global $timeout;
- global $alphabet;
- $mot = new_mot( $precedent_mot );
- global $start;
- if( time() > ($start + $timeout) ) {
- exit;
- }
- echo $mot . "<br />\n"; //fonction qui est executée avec le mot généré.
- $fp = fopen('dernier_mot.txt', 'w+');
- fwrite( $fp, $mot );
- fclose($fp);
- bruteforce( $mot);
- }
-
- if( file_exists('dernier_mot.txt') ) {
- $mot = file_get_contents('dernier_mot.txt');
- bruteforce( $mot);
- }else{
- bruteforce( '0' );
- }
- ?>
<?php
global $timeout;
$timeout = 2; //valeur du timeout diminué de 1 par exemple
?>
<script type='text/javascript'>
setTimeout("window.location.reload(true)", <?php echo $timeout; ?>000);
</script>
<?php
global $start;
$start = time();
global $alphabet;
if(isset( $_GET['type_car']) ){
$type = $_GET['type_car'];
switch($type){
case "alpha":
$alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
break;
case "alpha_min":
$alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
break;
case "alpha_maj":
$alphabet = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
break;
case "num":
$alphabet = array('0','1','2','3','4','5','6','7','8','9');
break;
case "bin":
$alphabet = array('0','1');
break;
case "adn":
$alphabet = array('A','T','G','C');
break;
case "all":
$alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
break;
default:
$alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
break;
}
} else {
$alphabet = array('a','b','c','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');
}
function new_mot( $prec_mot , $more = '' ){
global $alphabet;
if( eregi( '^' . $alphabet[count($alphabet)-1] . '+$' , $prec_mot ) ){
for( $i = 0; $i < strlen($prec_mot); $i++){
$nouv_mot .= $alphabet[0];
}
$nouv_mot .= $alphabet[0];
return $nouv_mot;
}
$last_lettre = $prec_mot{strlen($prec_mot)-1};
$pos_l = array_search( $last_lettre, $alphabet );
$pre = substr( $prec_mot , 0 , strlen( $prec_mot) -1 );
if( $pos_l == count( $alphabet )-1 ){
$ret = new_mot($pre, 'add');
}
if($pos_l != count( $alphabet )-1 ) {
$n_pos = $pos_l + 1;
$ret = $pre.$alphabet[$n_pos] ;
}
if( $more != '' ) {
$ret .= $alphabet[0];
}
return $ret;
}
function bruteforce( $precedent_mot ){
global $timeout;
global $alphabet;
$mot = new_mot( $precedent_mot );
global $start;
if( time() > ($start + $timeout) ) {
exit;
}
echo $mot . "<br />\n"; //fonction qui est executée avec le mot généré.
$fp = fopen('dernier_mot.txt', 'w+');
fwrite( $fp, $mot );
fclose($fp);
bruteforce( $mot);
}
if( file_exists('dernier_mot.txt') ) {
$mot = file_get_contents('dernier_mot.txt');
bruteforce( $mot);
}else{
bruteforce( '0' );
}
?>
Conclusion
Le script commence au chiffre 0 car si on commence à 'a', ça foire à la lettre 'Z' (je comprend pas pourquoi). J'ai créé ce script car chez moi (un vieil ordi), ça fait planter Apache si le script dure trop longtemps.
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 04 août 2004 17:46:53 :
- Correction rapide: Supression d'une boucle inutile.
- 04 août 2004 20:06:28 :
- Ajout de fonctionnalité: Gestion de plusieurs types de chaînes
- 28 août 2004 22:52:32 :
- Ajout d'un type de caractères : le nucléotides d'ADN
- 29 novembre 2005 15:22:12 :
- ajout de mot-clés
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
|
Téléchargements
Logiciels à télécharger sur le même thème :
|