Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: ~ Yoya ~ en 7 Septiembre 2011, 16:32 pm



Título: Bypass Recaptcha y cualquier otra
Publicado por: ~ Yoya ~ en 7 Septiembre 2011, 16:32 pm
(http://1.bp.blogspot.com/-VINCZF19Gxk/Tmd8JYth0KI/AAAAAAAAALI/jLE-VxTXBx8/s320/logo.png)

Muchas veces necesitamos hacerle un bypass a alguna captcha (http://es.wikipedia.org/wiki/Captcha), como puede ser Re-captcha (http://es.wikipedia.org/wiki/Recaptcha).

Lo primero que se nos ocurre es usar algun OCR (http://es.wikipedia.org/wiki/Reconocimiento_%C3%B3ptico_de_caracteres) (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 (http://es.wikipedia.org/wiki/Reconocimiento_%C3%B3ptico_de_caracteres), 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 (http://es.wikipedia.org/wiki/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 (http://es.wikipedia.org/wiki/Captcha) que seria un proceso igualmente largo ya que tienen que entender el funcionamiento de la captcha (http://es.wikipedia.org/wiki/Captcha) y comenzar a probar...

Yo estaba realizando una App web (http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web) y debía realizar acciones y tomar algunos datos de un sitio web, pero este utilizaba Re-captcha (http://es.wikipedia.org/wiki/Recaptcha) para poder identificarse/loguearse. Se me ocurrieron todas las opciones que menciones y otras pero no relacionada directamente con la captcha (http://es.wikipedia.org/wiki/Captcha).

Aquí tengo una solución universal para cualquier Captcha (http://es.wikipedia.org/wiki/Captcha). La solución mas rápida y segura, es utilizar la misma captcha que el sitio web.

Osea, la imagen genera la captcha (http://es.wikipedia.org/wiki/Captcha) la capturo y la muestro en mi sitio web para que los usuarios que vayan a utilizar la App web (http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web), inserten el código de la captcha (http://es.wikipedia.org/wiki/Captcha) y mi App web realice todo.

Al final tengo una App web (http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web), que realiza lo que quería hacer y utiliza captcha (http://es.wikipedia.org/wiki/Captcha). No tengo que implementar alguna captcha en mi servicio ya que con la captcha (http://es.wikipedia.org/wiki/Captcha) del sitio web me basta.


Bypass de  Re-Captcha

(http://2.bp.blogspot.com/-d9JBHoC32AU/Tmd1CsrA05I/AAAAAAAAAK8/8ZJpfatjDss/s320/1c.png)


Código
  1. <?php
  2. require_once('recaptchalib.php');
  3.  
  4.  
  5. $publickey = "6Lc55McSAAAAAChEOICK8IX0V6zRh3CD64ix6jbx";
  6. $privatekey = "6Lc55McSAAAAAB4ny39PlgX8gjMvm2x7SsrXEb6y";
  7.  
  8. if(!empty($_POST['nombre'])) {
  9.  
  10.    $is_valid = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
  11.  
  12.  
  13.    if($is_valid->is_valid) {
  14.        echo '<p><h1>Captcha Valida</h1></p>';
  15.        exit;
  16.    }else{
  17.        echo '<p><h1>Captcha invalida</h1></p>';
  18.    }
  19. }
  20.  
  21.  
  22.  
  23. ?>
  24.  
  25. <form method="POST" name="form" action="a.php">
  26.    <p>Mensaje:
  27. <input type="text" name="nombre"></p>
  28.   <?php echo recaptcha_get_html($publickey); ?>
  29.  
  30.    <input type="submit" value="enviar">
  31. </form>
  32.  

Realizare el código para hacerle el bypass.

(http://3.bp.blogspot.com/-RVPt8ej1wZg/Tmd6X_GOI-I/AAAAAAAAALA/G6vIjJxrlMg/s1600/2c.png)

Código
  1. <?php
  2.  
  3.  
  4.  
  5. //Si se envio el formulario, compruebo el el input
  6.  
  7. //donde se inserte la captcha, contenga algun valor
  8.  
  9. if(!empty($_POST['captcha_valude'])) {
  10.  
  11.  
  12.  
  13. $data =' nombre='.$_POST['mensaje'].'&recaptcha_challenge_field='.$_POST['cod'].'&recaptcha_response_field='.urlencode($_POST['captcha_valude']);
  14.  
  15. echo post('http://127.0.0.1/a.php', $data);
  16.  
  17. }
  18.  
  19. //Fin del poc para el bypass
  20.  
  21.  
  22.  
  23. //Obtengo la imagen de la captcha y luego la muestro....
  24.  
  25. $contenido = get('http://127.0.0.1/a.php');
  26.  
  27. preg_match('/ipt" src="(h[^"]+)/', $contenido, $result);
  28.  
  29. preg_match('/challenge :[sn]+'([^']+)/i', get($result[1]), $cont);
  30.  
  31. $img = 'http://www.google.com/recaptcha/api/image?c='.$cont[1];
  32.  
  33. echo '<IMG src="'.$img.'">';
  34.  
  35. //Fin...
  36.  
  37.  
  38.  
  39. //Funcion para realizar peticiones GET
  40.  
  41. function get($url) {
  42.  
  43. $ch = curl_init();
  44.  
  45. curl_setopt($ch, CURLOPT_URL, $url);
  46.  
  47. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  48.  
  49. $result = curl_exec($ch);
  50.  
  51.  
  52. return $result;
  53.  
  54. }
  55.  
  56.  
  57.  
  58. //Funcion para realizar peticiones POST
  59.  
  60. function post($url, $contenido) {
  61.  
  62. $ch = curl_init();
  63.  
  64. curl_setopt($ch, CURLOPT_URL, $url);
  65.  
  66. curl_setopt ($ch, CURLOPT_POST, 1);
  67.  
  68. curl_setopt ($ch, CURLOPT_POSTFIELDS, $contenido);
  69.  
  70. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  71.  
  72. $result = curl_exec ($ch);
  73.  
  74. curl_close ($ch);
  75.  
  76.  
  77.  
  78. return $result;
  79.  
  80. }
  81.  
  82.  
  83.  
  84. ?>
  85.  
  86.  
  87.  
  88. <!--Formulario-->
  89.  
  90. <form action="aa.php" method="POST">
  91.  
  92. <p>Inserte el contenido de la captcha</p>
  93.  
  94. <p><input type="text" name="captcha_valude"></p>
  95.  
  96. <p>Inserte el mensaje
  97. <input type="text" name="mensaje"></p>
  98.  
  99. <input type="hidden" name="cod" value="<?php echo $cont[1]; ?>"><!--Codigo de la captcha-->
  100.  
  101. <input type="submit" value="Enviar">
  102.  
  103. </form>
  104.  

Al rellenar todos los datos correctamente, me da por valida todo.

(http://4.bp.blogspot.com/-MUgNOMhXaaA/Tmd65Pl4BrI/AAAAAAAAALE/6cQQQ8ln5IE/s1600/3c.png)

Probar el PoC (http://es.wikipedia.org/wiki/Prueba_de_concepto), así entienden mejor todo.

Saludos.


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: Novlucker en 7 Septiembre 2011, 16:39 pm
La idea se entiende y esta muy bien planteada, pero donde esta el bypass? Sería un bypass si en realidad no tuvieses que ingresar nada, lo único que consigues es "redirigir" el captcha a la persona que esta frente al pc, y de cualquier modo el captcha termina cumpliendo su función, demostrar que no se es un bot.

De hecho, este sistema se utilizan en muchos sitios :silbar:

De cualquier modo repito, el planteo esta muy bien :)

Saludos


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ~ Yoya ~ en 7 Septiembre 2011, 17:27 pm
La idea se entiende y esta muy bien planteada, pero donde esta el bypass? Sería un bypass si en realidad no tuvieses que ingresar nada, lo único que consigues es "redirigir" el captcha a la persona que esta frente al pc, y de cualquier modo el captcha termina cumpliendo su función, demostrar que no se es un bot.

De hecho, este sistema se utilizan en muchos sitios :silbar:

De cualquier modo repito, el planteo esta muy bien :)

Saludos


Sip, antes de realizar el articulo pensé lo mismo. Que mirarlo detenidamente no hay algún bypass.

En realidad, si lo piensas, cuando una persona incorpora una Captcha es con la finalidad que todo aquel que este ingresando los datos, este navegando en su sitio web y que no sea parte de un proceso automatizado.


En este caso, para que funcione se necesita de una persona que lo ejecute directamente que al final, todo seria automatizado excepto la el código de la captcha. Al final la persona es parte de un proceso automatizado.

Saludos.


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: Novlucker en 7 Septiembre 2011, 17:42 pm
Exacto, también hay malware que aplica esto mismo, necesitan completar captchas para crear cuentas en determinados servicios (ej: e-mail), y le muestran estos captchas a las personas para poder seguir :P


Saludos


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ~ Yoya ~ en 7 Septiembre 2011, 17:49 pm
No había visto eso xD. Pero bueno, todos los días se ve algo diferente xD.

Saludos.


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: Lunfardo en 9 Septiembre 2011, 06:11 am
es imposible ganarle a los captcha QQ



la ultima, vi un sitio en el que el captcha era en flash y consistia en que daban un valor en letra rara de fondo y por encima habia una matriz de valores en donde tenia que hubicar el valor. LOL



ya no solo se requiere no ser un robot sino ser mas que humano ya que algunos textuales son directamente imposibles =P


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: .:UND3R:. en 9 Septiembre 2011, 07:14 am
Felicitaciones  ;-) un excelente truco, no te dejes llevar por los malos comentarios, si tienes una página con mucho flujo lo del captcha no será nada

Saludos


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: Novlucker en 9 Septiembre 2011, 14:58 pm
Felicitaciones ;-) un excelente truco, no te dejes llevar por los malos comentarios, si tienes una página con mucho flujo lo del captcha no será nada

Donde están los malos comentarios y a que te refieres con una página con mucho flujo? :¬¬


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: _Enko en 10 Septiembre 2011, 15:32 pm
Comentarios negativos?
Lo que han dicho es un hecho. Esto no es un bypass.

Citar
sino ser mas que humano
Como las letras con  los gatitos y los  perritos de rapidshare.... menos mal que cambiaron, porque la verdad, me pasaba a veces unos cuantos minutos tratando de ingresar las letras correctas.


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ~ Yoya ~ en 10 Septiembre 2011, 16:11 pm
Lo que han dicho es un hecho. Esto no es un bypass.

Entonces es un Fake??

En realidad, si lo piensas, cuando una persona incorpora una Captcha es con la finalidad que todo aquel que este ingresando los datos, este navegando en su sitio web y que no sea parte de un proceso automatizado.

Si una persona puede ejecutar un bot, también puede ingresar las letras de una imagen para su funcionamiento...


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ganondolf en 17 Julio 2012, 02:42 am
hay error en el 2do preg_match


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ~ Yoya ~ en 18 Julio 2012, 03:04 am
Que error exactamente, yo lo he probado todo antes. Si pudieras poner el código que estas utilizando...

Saludos.


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ganondolf en 18 Julio 2012, 16:11 pm
ocupo exactamente tu mismo codigo, sin ninguna alteracion previa. y me lanza error de sintaxis en el 2do preg_match. veelo tu mismo con tu codigo y veras.


Título: Re: Bypass Recaptcha y cualquier otra
Publicado por: ~ Yoya ~ en 19 Julio 2012, 04:51 am
Entonce supongo que el error debe ser que el script no este obteniendo el código de fuente de la web o le este pasando una URL erronea o quizas se ha renovado el codigo que utilizan para utilizar ReCaptcha y por eso no funciona.

Igual el source es solo un PoC (Prueba de conceptos), que el plan es demostrar que se puede realizar el bypass no es un exploit ni nada similar.

Saludos.