begin process at 2012 05 27 21:58:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > BRUTEFORCE AVEC GESTION DU TIMEOUT

BRUTEFORCE AVEC GESTION DU TIMEOUT


 Information sur la source

Attention: ce code a été marqué comme suspect par un admin, il peut donc être dangereux. Ce code a été laissé sur le site dans un but pédagogique, ne l'exécutez pas si vous ne comprenez pas son contenu!
Note :
Aucune note
Catégorie :Chaîne de caratère Classé sous :bruteforce, reprise, maxexecutiontime Niveau :Initié Date de création :04/08/2004 Date de mise à jour :29/11/2005 15:22:11 Vu / téléchargé :5 325 / 249

Auteur : Samiby

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 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

Les Membres Club peuvent 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

Source avec Zip CLASSE POUR FORMULAIRE HTML : GÉNÉRATION ET RÉCUPÉRATION DES...
Source avec Zip GESTION DES ERREURS
DOUBLE ASTUCE POUR LES LIENS & AUTRES(À PARTIR DE L'URL)
Source avec Zip REQUETE MYSQL SIMPLE AVEC SAUVEGARDE
Source avec Zip UN LIVRE D'OR SANS MYSQL, MAIS AVEC TXT

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

 Sources en rapport avec celle ci

BRUTE FORCE PHP par nax333
MD5 RELATION RECIPROQUE par coucou747
CRACKAGE CHAINES CRYPTER EN MD5 PAR BRUTEFORCE par Astalavista

Commentaires et avis

Commentaire de GRenard le 04/08/2004 19:23:50

Tu n'est pas régulier dans ton codage (cf http://www.phpcs.com/code.aspx?ID=24870)
Sinon, ca a l'air bien mais je ne peux pas me pencher beaucoup la dessus parce que ton script semble plutot long !

Commentaire de GRenard le 04/08/2004 19:28:05

Pardon, le message précédent n'est pas pour ton code ... désolé !? c'est la première fois que ca m'arrive...

Tu devrais rajouter des options du style "Différentes plages de caractères", différents nombres de caractères...

Commentaire de Samiby le 04/08/2004 19:38:30

Je ne cois pas ce que tu veux dire par "Différentes plages de caractères et "différents nombres de caractères".
options du style :
-Caractères alphabétiques seulement
-Caractères numériques seulement
-Binaire
-caractères alphanumériques
-tous les caractères

Je vais rajouter ça, c'est une bonne idée. Je ne sais pas si c'est ce que tu voulais dire, mais c'est ce que j'en ai compris.

Commentaire de GRenard le 04/08/2004 22:14:33

Ce que tu viens de faire ca s'appelle "Différentes Plages de Caractères"
Essais de voir pour le nombre de caractères à essayer (inspire toi du programmes AZPR)

Commentaire de tiotiot le 11/05/2009 17:31:24

bonjour, je voudrais s avoir c est qu elle programme pour compiler et exécuter ce code source?
c est quel langage? merci de me répondre

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Télécharger file.php et reprise de telechargement ? [ par supergrey ] Bonjour, j'ai un script php qui permet de télécharger un fichier en l'appelant, du genre file.php?id=1 Le fichier à télécharger est généré par mon scr un micro forum avec fichier txt et reprise de déco [ par vegetalain ] Salut, alors voilà, j'aurais besoin de mettre en place une sorte de micro-forum, qui ressemblerais à ça (simulation en html et 'toshop): http://vegeta affichage calendrier de gestion des congés [ par babouche12 ] Bonjour à tous, Je suis en stage en entreprise et je dois refaire certaines fonctionnalités de l'Intranet. La partie Gestion des congés étant trop co reprise de données mises à jour automatiquement [ par clems6 ] Bonsoir à tous, Je suis en train de créer un site pour mon club de sport et je souhaiterais reprendre le tableau des résultats (pas la page en entier


Nos sponsors


Sondage...

Comparez les prix

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,577 sec (3)

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