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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta  (Leído 4,076 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« en: 11 Diciembre 2019, 02:04 am »

Fuente Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta

En el Post que acabo de publicar básicamente se muestra el código en javascript y en PHP para implementar el reCAPTCHA v3 en un Formulario para evitar ataques de fuerza bruta.

Codigo en PHP:

Código
  1. <?php
  2. try {
  3.  //Validar datos POST or GET aqui.
  4.  $post_data = http_build_query(
  5.    array(
  6.        'secret' => "SECRET KEY HERE THIS VALUE MUST BE PRIVATE...",
  7.        'response' => $_POST['reCAPTCHA_Token'],//Token devuelto por Google al Front End y enviado a este formulario
  8.        'remoteip' => $_SERVER['REMOTE_ADDR'] //Direccion IP publica del cliente que envia el formulario
  9.    )
  10.  );
  11.  $opts = array('http' =>
  12.    array(
  13.    'method'  => 'POST',
  14.    'header'  => 'Content-type: application/x-www-form-urlencoded',
  15.    'content' => $post_data
  16.    )
  17.  );
  18.  $context  = stream_context_create($opts);
  19.  $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context);
  20.  $result = json_decode($response);
  21.  if($result->action != $_POST["action"]) {
  22.    throw new Exception("Google recaptcha action missmatch");
  23.  }
  24.  if($result->score < 0.5) {
  25.    throw new Exception("Google recaptcha score too low");
  26.  }
  27.  //Devuelta a las validaciones actuales de seguridad para los datos recibidos
  28. }catch(Exception $e) {
  29.  //catch exception here
  30. }
  31. ?>

saludos!


En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« Respuesta #1 en: 11 Diciembre 2019, 11:09 am »

Se ve chula la web. El color de la fuente con el fondo blanco es muy cómodo de leer.

Puede ser que falle el código si el visitante utiliza un proxy no transparente con una IP y en la cabecera forwarded la del cliente? Igual interesa comprobar si ambas coinciden, y de no ser así, comprobar si la ip es de un dominio relacionado con servicios de proxy, hosting o eso.



En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« Respuesta #2 en: 11 Diciembre 2019, 21:32 pm »

Se ve chula la web. El color de la fuente con el fondo blanco es muy cómodo de leer.

Jajaja utilice la primera plantilla que me gusto solo le edapte el PHP en el backend


Puede ser que falle el código si el visitante utiliza un proxy no transparente con una IP y en la cabecera forwarded la del cliente?

Si el proxy funciona como debe (Sock 4 Sock 5 ) la IP debe de coincidir ya que tnato tu backend como el de google verian la misma IP, aunque dependiendo del proxy podria tener ya un score bajo en google, ahorita lo compruebo y posteo los resultados.

Ya realize la prubea con el proxy no arrojo error de las IP y tampoco me arrojo un Score bajo, incluso utilizando un navegador en modo incognito. Creo que el score te lo va ir bajando si tratas de abusar del formulario.

Saludos!
« Última modificación: 13 Diciembre 2019, 22:05 pm por AlbertoBSD » En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« Respuesta #3 en: 15 Diciembre 2019, 02:13 am »

¿Quéeeeeeeeeeeee? ¿Se puede usar reCAPTCHA para archivos AJAX? ¿O entendí todo mal xD?

Es decir, digamos que tengo un sistema de comentarios con AJAX ¿Puedo validar cada envió con reCAPTCHA?

Algo parecido a un "timeline"

[TEMA]
[FORMULARIO DE COMENTARIO]

[OTRO TEMA]
[OTRO FORMULARIO DE COMENTARIO]

[OTRO TEMA MÁS]
[OTRO FORMULARIO DE COMENTARIO MÁS]

Los diferentes formularios se agregan de forma dinámica "foreach" usando PHP
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« Respuesta #4 en: 15 Diciembre 2019, 02:47 am »

Si, de hecho se puede validar muchas cosas de cada pagina, solo que si un mismo cliente hace mucha peticiones de recaptcha puede que le bajen el score, sin embargo tengo entendido que google "apreden" cual es el uso "normal" que se le da a cada pagina.

En el primer post aparece como usarlo en el back end

En el link que publique, viene los codigos para implementarlo de manera generica aqui ahora pego el script:

Código
  1.    grecaptcha.ready(function() {
  2.      grecaptcha.execute('SITE KEY HERE, THIS VALUE IS PUBLIC', {action: '/login'}).then(function(token) {
  3.        $.ajax({
  4.          type: "POST",
  5.          url: "/path/to/form/backend/",
  6.          data: {
  7.            ...//mas datos
  8.            action: "/login",
  9.            reCAPTCHA_Token: token,
  10.          },
  11.          success: function( data, textStatus, jQxhr ){
  12.            ...
  13.          },
  14.          error: function( jqXhr, textStatus, errorThrown ){
  15.            ...
  16.          }
  17.        });
  18.      });
  19.    });
  20.  

En teoria solo tendrias que modificar el action de cada llamada a grecaptcha.execute y el action que le mandas por ajax a tu sever, ya el servidor se tiene que validar que el action coincida tanto el que le mandas con ajax como el que responde google en el backend

podrias tener un action distinto para cada formulario distinto y validarlo del lado del server.

Saludos!
« Última modificación: 15 Diciembre 2019, 02:49 am por AlbertoBSD » En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« Respuesta #5 en: 15 Diciembre 2019, 03:20 am »

Interesante... yo uso la v2 ese que al darle click al captcha se verifica o te sale una tarea para completar. ¿Funcionara con este?
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Utilizar reCAPTCHA v3 para evitar intentos de fuerza bruta
« Respuesta #6 en: 15 Diciembre 2019, 03:26 am »

La v3 es totalmente transparente, el usuario no tiene que darle click a nada.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Fuerza bruta para contraseña de router
Programación Visual Basic
aaronduran2 5 4,230 Último mensaje 11 Septiembre 2008, 23:04 pm
por demoniox12
Utilizar fuerza bruta para descifrar MD5 en C#
.NET (C#, VB.NET, ASP)
Richard019 1 5,256 Último mensaje 5 Noviembre 2009, 13:51 pm
por Mr. Crowley
Fuerza bruta para Mac
Hacking
periko75 0 3,172 Último mensaje 8 Marzo 2012, 15:56 pm
por periko75
Fuerza bruta para las redes sociales. « 1 2 »
Análisis y Diseño de Malware
flyingwifi 11 17,881 Último mensaje 12 Julio 2012, 16:43 pm
por #!drvy
Evitar multiples for en incrementos variables Base58 Fuerza bruta
Programación General
AlbertoBSD 3 3,295 Último mensaje 8 Febrero 2022, 01:41 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines