skip to main | skip to sidebar
Yoyahack
El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe
RSS
  • Home
  • Admin
  • Undersecurity
  • CPAN - Perl
  • PHP

Bypass Recaptcha y cualquier otra

Captcha, Nivel web, php, programacion, Tips 6 comentarios



Muchas veces necesitamos hacerle un bypass a alguna captcha, como puede ser Re-captcha.

Lo primero que se nos ocurre es usar algun OCR (Reconocimiento óptico de caracteres) para detectar las letras de la imágenes. El problema esta que no puede funcionar correctamente y en muchos casos no logra procesar la imagen. Quizás por eso no sea algo muy típico, ni muy utilizado con esto fines.

Podemos desarrollar nuestro propio OCR, pero a la larga seria un proceso muy complejo y necesitaríamos invertirle mucho tiempo. Muchos simplemente descartan el proyecto.

Otros lo que harían seria buscar alguna vulnerabilidad en la captcha, que de alguna forma les permita saber que imagen es y que letras tienen. Algunos buscarían una vulnerabilidad en la validación de la captcha que seria un proceso igualmente largo ya que tienen que entender el funcionamiento de la captcha y comenzar a probar...

Yo estaba realizando una App web y debía realizar acciones y tomar algunos datos de un sitio web, pero este utilizaba Re-captcha para poder identificarse/loguearse. Se me ocurrieron todas las opciones que menciones y otras pero no relacionada directamente con la captcha.

Aquí tengo una solución universal para cualquier Captcha. La solución mas rápida y segura, es utilizar la misma captcha que el sitio web.

Osea, la imagen genera la captcha la capturo y la muestro en mi sitio web para que los usuarios que vayan a utilizar la App web, inserten el código de la captcha y mi App web realice todo.

Al final tengo una App web, que realiza lo que quería hacer y utiliza captcha. No tengo que implementar alguna captcha en mi servicio ya que con la captcha del sitio web me basta.


Bypass de  Re-Captcha

El source de ejemplo



<?php
require_once('recaptchalib.php');


$publickey = "6Lc55McSAAAAAChEOICK8IX0V6zRh3CD64ix6jbx";
$privatekey = "6Lc55McSAAAAAB4ny39PlgX8gjMvm2x7SsrXEb6y";

if(!empty($_POST['nombre'])) {

	$is_valid = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);


	if($is_valid->is_valid) {
		echo '<p><h1>Captcha Valida</h1></p>';
		exit;
	}else{
		echo '<p><h1>Captcha invalida</h1></p>';
	}
}



?>

<form method="POST" name="form" action="coment.php">
	<p>Mensaje: <br><input type="text" name="nombre"></p>
   <?php echo recaptcha_get_html($publickey); ?><br>
	<input type="submit" value="enviar">
</form>

Realizare el código para hacerle el bypass.


<?php



//Si se envio el formulario, compruebo el el input

//donde se inserte la captcha, contenga algun valor

if(!empty($_POST['captcha_valude'])) {



$data =' nombre='.$_POST['mensaje'].'&recaptcha_challenge_field='.$_POST['cod'].'&recaptcha_response_field='.urlencode($_POST['captcha_valude']);

echo post('http://127.0.0.1/a.php', $data);

}

//Fin del poc para el bypass



//Obtengo la imagen de la captcha y luego la muestro....

$contenido = get('http://127.0.0.1/a.php');

preg_match('/ipt" src="(h[^"]+)/', $contenido, $result);

preg_match('/challenge :[sn]+'([^']+)/i', get($result[1]), $cont);

$img = 'http://www.google.com/recaptcha/api/image?c='.$cont[1];

echo '<IMG src="'.$img.'">';

//Fin...



//Funcion para realizar peticiones GET

function get($url) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

return $result;

}



//Funcion para realizar peticiones POST

function post($url, $contenido) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_POST, 1);

curl_setopt ($ch, CURLOPT_POSTFIELDS, $contenido);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec ($ch);

curl_close ($ch);



return $result;

}



?>



<!--Formulario-->

<form action="aa.php" method="POST">

<p>Inserte el contenido de la captcha</p>

<p><input type="text" name="captcha_valude"></p>

<p>Inserte el mensaje <br><input type="text" name="mensaje"></p>

<input type="hidden" name="cod" value="<?php echo $cont[1]; ?>"><!--Codigo de la captcha-->

<input type="submit" value="Enviar">

</form>
Al rellenar todos los datos correctamente, me da por valida todo.


Probar el PoC, así entienden mejor todo.

Saludos.


7:18



6 responses to "Bypass Recaptcha y cualquier otra"

  1. SR_SN dijo...
    21 de marzo de 2012, 7:48

    Yoya, quiero consultarte, estoy queriendo realizar el bypass del captcha en una pagina con protocolo https ¿debo agregar algun valor curl_setopt que indique que el protocolo es SSL?, y por otro lado ¿cual es la mejor herramienta para analizar las cabeceras que deben enviarse?

    yoyahack dijo...
    14 de abril de 2012, 12:11

    Estoy queriendo realizar el bypass del captcha en una pagina con protocolo https ¿debo agregar algun valor curl_setopt que indique que el protocolo es SSL?

    Ps te recomendaria que se lo agregaras, para evitarte pequeños problemas. Algunas web forzan a utilizar SSL y toda peticion que no utilize SSL entonce no la procesan... Algunas permiten las peticiones tanto HTTP como HTTPS pero igual te recomiendo que si la web trabaja con SSL, utilizalo para evitar conflictos luego.

    La mejor herramienta sin duda (para mi) es Live HTTP Headers (Addon para firefox).

    Saludos.

    Anónimo dijo...
    14 de julio de 2012, 18:54

    seria mejor si en cURL agregaras para que capture cualquier url y capturarle el captcha de la url luego recrearlo en tu local.

    yoyahack dijo...
    1 de diciembre de 2012, 11:59

    Recordar que es un PoC, la idea es entender el concepto. No hay problema si quieres utilizar ese PoC como base y luego agregarle mas funcionalidades.

    Saludos.

    Unknown dijo...
    8 de junio de 2013, 4:48

    interesting blog. It would be great if you can provide more details about it. Thanks you








    Bypass Captcha

    Anónimo dijo...
    29 de agosto de 2014, 16:22

    pero qué puta mierda es esta??? Bypass ? MIS COJONES


Publicar un comentario

Entrada más reciente Entrada antigua Inicio
Suscribirse a: Enviar comentarios (Atom)

    Fedora 15

    FayerWayer

    Cargando...

    Twitter

    Follow @Yoyahack

    Categoria

    • Captcha (1)
    • Exploit (1)
    • Herramientas (10)
    • MYSQL (2)
    • Nivel web (24)
    • Noticias (2)
    • Offtopic (2)
    • perl (11)
    • php (12)
    • POO (1)
    • programacion (19)
    • Regexp (2)
    • Tips (1)
    • vurnerabilidad (7)
    • XSS (2)

    Blog Archive

    • ►  2012 (1)
      • ►  abril (1)
    • ▼  2011 (6)
      • ►  octubre (1)
      • ▼  septiembre (1)
        • Bypass Recaptcha y cualquier otra
      • ►  agosto (1)
      • ►  junio (1)
      • ►  marzo (2)
    • ►  2010 (10)
      • ►  octubre (2)
      • ►  septiembre (1)
      • ►  agosto (1)
      • ►  junio (1)
      • ►  abril (2)
      • ►  febrero (3)
    • ►  2009 (15)
      • ►  noviembre (1)
      • ►  octubre (1)
      • ►  septiembre (10)
      • ►  agosto (3)

    Afiliados

    • ANTRAX
    • drvy
    • hachik0
    • Ksha
    • kt0sh
    • Lord RNA
    • Panic
    • pks
    • seth
    • SH4V
    • snakingmax