Foros del Web » Programando para Internet » PHP »

Validaciòn POST

Estas en el tema de Validaciòn POST en el foro de PHP en Foros del Web. Muy buenos dìas Foreros, me he topado con un fragmento de còdigo para validacòn de usuarios: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $password = $_POST ...
  #1 (permalink)  
Antiguo 12/05/2011, 11:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Validaciòn POST

Muy buenos dìas Foreros, me he topado con un fragmento de còdigo para validacòn de usuarios:

Código PHP:
Ver original
  1. $password=$_POST['password'];
  2. $query = mysql_query("SELECT username,password FROM users WHERE username = '$username' and estado<>'0'") or die(mysql_error());
  3. $data = mysql_fetch_array($query);
  4. if($data['password'] != $password) {
  5. //echo "<font color='#FF0000'>la contraseña <b>$password</b> es incorrecta</font>";
  6. }
  7. else  {echo 'estas dentro';}
cuando lo vì, creì que era fàcil burlar la validaciòn conociendo el nombre de usuario, sin embargo, cuando coloco en el campo de password:
Código SQL:
Ver original
  1. 1 AND 1==2
me muestra el mensaje de que la contraseña es incorrecta, a pesar que el usuario es correcto.

alguien sabe porque no valida la peticiòn, ya que en la condiciòn del password quedarìa:
Código SQL:
Ver original
  1. $data['password'] != 1 AND 1==2
lo cual es falso y deberìa entrar al sistema, no?

Gracias por su tiempo.
__________________
AppLab - Laboratorio de Ideas
  #2 (permalink)  
Antiguo 12/05/2011, 11:09
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Validaciòn POST

Hola,

bueno primero que todo a lo que se entiende...
1 AND 1==2 : esto siempre va dar falso, porque 1 no es "Igual igual" a 2.

tambien mira como estas poniendo "==" en mysql se usa un solo igual "=" a diferencia de php que es para comparacion y el igual simple para asignacion!



saludos!
  #3 (permalink)  
Antiguo 12/05/2011, 11:13
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años
Puntos: 24
Respuesta: Validaciòn POST

yo la verdad no entiendo bien cual es tu duda... en el 1er codigo que pusiste... pareciera estar todo bien.. faltaria la parte de recibir el usuario desde un input... pero seguramente lo haces.. se valida usuario y contraseña.. ahora con los 2 cuadros de codigo que estan mas abajo ya me perdi.. no entiendo que queres hacer o que te anda mal o que duda tenes..
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #4 (permalink)  
Antiguo 12/05/2011, 11:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Validaciòn POST

Cita:
Iniciado por leo_nqn Ver Mensaje
yo la verdad no entiendo bien cual es tu duda... en el 1er codigo que pusiste... pareciera estar todo bien.. faltaria la parte de recibir el usuario desde un input... pero seguramente lo haces.. se valida usuario y contraseña.. ahora con los 2 cuadros de codigo que estan mas abajo ya me perdi.. no entiendo que queres hacer o que te anda mal o que duda tenes..
Está intentando hackear el sistema.

Lo he probado, y poniendo directamente la expresión 1 AND 1==2 en el if a mi sí me funciona. Puede que la consulta elimine de alguna forma los espacios en blanco y por eso no funciona, no se.

EDITO: No, no funciona. Lo he probado de otra forma y falla. Yo creo que es porque no lo toma como una expresión lógica sino como una cadena. La variable $password la considera como una cadena de caracteres.

Última edición por Nexus10; 12/05/2011 a las 11:42
  #5 (permalink)  
Antiguo 12/05/2011, 11:48
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años
Puntos: 24
Respuesta: Validaciòn POST

Código:
if($data['password'] != $password) {
//echo "<font color='#FF0000'>la contraseña <b>$password</b> es incorrecta</font>";
}
else  {echo 'estas dentro';}
o yo estoy entendiendo mal... o con este codigo.. si sabes el usuario entras! no hace falta que inventes una pass.. o que pongas 1 AND 1==2... ojo capaz las musica que escucho me hace entender mal! jajaja pero pareciera que si sabes el USER entras al sistema con esto...
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #6 (permalink)  
Antiguo 12/05/2011, 11:56
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Validaciòn POST

efectivamente funciona, con solo saber el usuario...

ya lo he probado y entendido y funciona!....

verifica no sea que estes accediendo a un suario con estado = '0' :P
__________________
www.sawedsa.com
  #7 (permalink)  
Antiguo 12/05/2011, 13:04
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: Validaciòn POST

Gracias por sus respuestas, de momento creo que está pasando lo que dice @Nexus10 pero agradecería a @RollerSky si publica el código que está usando para validar la consulta.

muchas gracias.
__________________
AppLab - Laboratorio de Ideas
  #8 (permalink)  
Antiguo 12/05/2011, 18:40
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Validaciòn POST

Con ese codigo que tiene y si se como funciona su Base de Datos o la tabla mejor dicho(columnas que contiene) ahi puedo meter una sql inyeccion y crearme una cuenta y ya poder ingresar jeje
  #9 (permalink)  
Antiguo 13/05/2011, 15:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: Validaciòn POST

Hola @s00rk he intentado hacer eso pero no logro ingresar ni actualizar datos, me podrías ayudar con eso?

les comento a los lectores, este es un fragmento de código de una aplicación web que debo sustentar en la U, la aplicación pertenece a una tesis y parte de lo que pienso exponer es sobre la seguridad que aporta, soy muy nuevo con la inyección sql, pero por lo que he leído me parece que es relativamente sencillo burlar el sistema, entonces @s00rk respondiendo a lo que dices, tengo los archivos fuente y base de datos del sistema, y lo estoy corriendo de manera local.

Gracias por su tiempo y espero me puedan orientar un poco más.

PD: le desactive magic_quotes para que sea más fácil la inyección, de momento solo logro conocer el nombre de una de las columnas de la tabla y el nombre de la base de datos.
__________________
AppLab - Laboratorio de Ideas
  #10 (permalink)  
Antiguo 13/05/2011, 15:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: Validaciòn POST

Cita:
Iniciado por leo_nqn Ver Mensaje
Código:
if($data['password'] != $password) {
//echo "<font color='#FF0000'>la contraseña <b>$password</b> es incorrecta</font>";
}
else  {echo 'estas dentro';}
o yo estoy entendiendo mal... o con este codigo.. si sabes el usuario entras! no hace falta que inventes una pass.. o que pongas 1 AND 1==2... ojo capaz las musica que escucho me hace entender mal! jajaja pero pareciera que si sabes el USER entras al sistema con esto...
@leo_nqn el fragmento que pones, funciona con las instrucciones que están más arriba, por lo que no solo es necesario saber el user, sino que también el password.
Código PHP:
Ver original
  1. $password // se ingresa a través del formulario
  2. $data['password'] // viene de la consulta sobre el usuario
__________________
AppLab - Laboratorio de Ideas
  #11 (permalink)  
Antiguo 13/05/2011, 15:35
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años
Puntos: 24
Respuesta: Validaciòn POST

Si si dije cualquier cosa... jajaja sorry!
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra

Etiquetas: post
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:42.