elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ... 111
341  Foros Generales / Foro Libre / Re: Servidor de Juegos de elhacker.NET en: 7 Septiembre 2011, 22:18 pm
para poder jugar el CS tengo que tener el juego original?

Es necesario para poder jugar en el servidor del elhacker
342  Seguridad Informática / Nivel Web / Re: Bypass Recaptcha y cualquier otra 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.
343  Seguridad Informática / Nivel Web / Re: Bypass Recaptcha y cualquier otra 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.
344  Seguridad Informática / Nivel Web / Bypass Recaptcha y cualquier otra en: 7 Septiembre 2011, 16:32 pm

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



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.


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.


Probar el PoC, así entienden mejor todo.

Saludos.
345  Programación / PHP / Re: inner join e cakephp en: 6 Septiembre 2011, 23:56 pm
Se nota mucho que llevas muy poco utilizando CakePHP.

Trata siempre de usar un código de ejemplo, así te podemos echar la mano utilizando el código de ejemplo.

Aqui te dejo unos links, para que lo mires.

CakePHP - Recuperando tus Datos
CakePHP Videos

Saludos.
346  Seguridad Informática / Nivel Web / Re: Insertar datos con un update, dentro de otro update con SQLi(Mysql) en: 23 Agosto 2011, 01:04 am
No puedes utilizar union en este caso...

Lo que puedes hacer, es realizar mas de una consulta en una transacción(Stacking Queries) pero PHP&MYSQL no soporta Stacking Queries.

Saludos.
347  Foros Generales / Foro Libre / Re: ¿Cuáles extensiones tienes instalada en tu navegador? en: 22 Agosto 2011, 00:05 am
Chrome
Citar
Greasemonkey
Pastebin
goo.gl URL Shortener
Screen Capture
TweetDeck
Turn Off the Lights
YouTube Downloader
AdBlock

Saludos.
348  Programación / PHP / Re: Problema con preg_match_all() en: 21 Agosto 2011, 22:58 pm
Sip, el error es que tienes que escapar las barras, recuerdas que los delimitadores son / y /, que indican donde empiezan y donde terminan...

Aquí otra versión un poco mas mejorada...
Código
  1. <?php
  2. preg_match_all('/\[img\]([^\|]+)\|(\d+)\|(\d+)/i', '[img]http://www.google.com.ar/image.jpg|500|500[/img]', $result, PREG_SET_ORDER);
  3.  
  4. print_r($result);
  5. ?>

Salida:
Código:
Array
(
    [0] => Array
        (
            [0] => [img]http://www.google.com.ar/image.jpg|500|500
            [1] => http://www.google.com.ar/image.jpg
            [2] => 500
            [3] => 500
        )

)
349  Programación / PHP / Re: Sobre POO en: 16 Agosto 2011, 16:17 pm
Te recomiendo que pienses como haras todo antes de programar. Así no tendrás lió ni nada por el estilo.
350  Programación / Desarrollo Web / Re: Creación del tipo de dato float, implementación de la clase en: 14 Agosto 2011, 23:52 pm
Creo que estas mezclando Java con PHP
Páginas: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ... 111
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines