Foros del Web » Programando para Internet » PHP »

el Human Check es vulnerable? (los numeritos en pantalla)

Estas en el tema de el Human Check es vulnerable? (los numeritos en pantalla) en el foro de PHP en Foros del Web. me han comentado que el Human Check http://horobey.com/demos/codegen/index.html es vulnerable, saben algo del tema, es seguro 99%?...
  #1 (permalink)  
Antiguo 18/01/2005, 03:51
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 3 meses
Puntos: 0
el Human Check es vulnerable? (los numeritos en pantalla)

me han comentado que el Human Check
http://horobey.com/demos/codegen/index.html

es vulnerable, saben algo del tema, es seguro 99%?

Última edición por rrufo; 18/01/2005 a las 05:46
  #2 (permalink)  
Antiguo 18/01/2005, 05:48
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 3 meses
Puntos: 0
aqui tiene una muestra de llamada http://www.conquistamorella.com/cm_h...892a19c7f0411f




Cita:
Iniciado por rrufo
este es parte del codigo fuente:

<?PHP
#############################################
# Project: HumanCheck 2.1
# file: humancheck_config.php
# company: SmiledSoft.com (SmiledSoft.com)
# author: Yuriy Horobey ([email protected])
# purpose: outputs picture with secret code
# date: 24.08.2004
#
#############################################
error_reporting(85);//serious error only

require(dirname(__FILE__)."/humancheck_config.php");
$sid=trim($HTTP_GET_VARS["sid"]);

session_id($sid);
session_start();
$noautomationcode = $HTTP_SESSION_VARS["noautomationcode"];

$img_path = dirname(__FILE__)."/$config_back_image";
$img = ImageCreateFromJpeg($img_path );
$img_size = getimagesize($img_path );

$fw = imagefontwidth ( $config_font );
$fh = imagefontheight ( $config_font );

$x = ($img_size[0] - strlen($noautomationcode) * $fw )/2;
$y = ($img_size[1] - $fh) / 2; // middle of the code string will be in middle of the background image

$color = imagecolorallocate($img,
hexdec(substr($config_code_color,1,2)),
hexdec(substr($config_code_color,3,2)),
hexdec(substr($config_code_color,5,2))
);

imagestring ( $img, $config_font, $x, $y, $noautomationcode, $color);
header("Content-Type: image/jpeg");
imagejpeg($img);
?>
  #3 (permalink)  
Antiguo 18/01/2005, 06:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. si el "código" a generar viene propagado por una sesión como es el caso del ejemplo que indicas .. no debería tener problemas de seguridad "básicos" .. ahora, que exista algún "algoritmo" tipo un software de OCR para reconocer tus tipografías y de ahí obtener tu código .. puede existir . para eso debes "complicarlo" más usando diferentes tipografías .. rotandolas? .. poniendolo dificil en resumen.

Un saludo,
  #4 (permalink)  
Antiguo 18/01/2005, 06:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Quizas el problema este en el otro codigo, el que comprueba que el valor introducido en el formulario corresponde con el de la imagen. O en el formulario que pide los datos, que da mas informacion de la debida.

Por cierto, ¿vulnerable por que es inseguro, o por que se puede pasar sin problemas?

Espera, acabo de hacer una prueba. Crea una pagina en local con este codigo
Código HTML:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<!-- the secret image -->
<img src='http://horobey.com/demos/codegen/v2/humancheck_showcode.php?sid=8631125607bb94b0a7703b86445eeac6'>
<!-- the form -->
<form action='http://horobey.com/demos/codegen/v2/humancheck_check.php' method='post'>
	<input type='hidden' name='sid' value='8631125607bb94b0a7703b86445eeac6'>

	<input type='text' name='code'>
	<input type='Submit' name='Submit'>
</form>
</body>
</html> 
En el parametro sid del img cambia algun caracter (siempre que sea valido). Pon el mismo en el campo oculto. Ejecuta la pagina y no pongas nada en el campo text.

A mi me sale
Cita:
Code is OK you are allowd to see my page.
From here you can redirect visitor, or allow him to download something or insert registration data to the database. etc.
¿Por que? Parece que si le pasas un id de sesion inexistente te crea una con un valor de codigo de cadena vacia. Solo con poner en sid valores de sesiones no existentes ya vale para que un soft automatico se lo salte.

Saludos.

PD: Supongo que añadiendo condiciones de que la longitud de la contraseña no puede ser 0, o que en el codigo que genera la imagen si no existe la sesion que genere un nuevo codigo, podria solucionarse.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 18/01/2005, 07:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm En ese caso .. la "técnica" del "Human Check" mas bien no es tan vulnerable ... sino esa implementación concreta de dicha técnica ..

En esta FAQ se implementó otro sistema similar ..
http://www.forosdelweb.com/showpost....&postcount=123

En ese caso .. habría que probar el sistema propagando el SID en el URL .. de todas formas mas o menos se vé que tiene el mismo problema, pero como comenta josemi .. con un ese tipo de validaciones estaría resuelto el problema en principio.


Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:34.