Bypass + iSQL

Iniciado por Shell Root, 1 Junio 2011, 06:43 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

Supongamos que tenemos el siguiente código
Código (php) [Seleccionar]
$resultado = mysql_query("SELECT * FROM usuarios WHERE login='$_POST[user]'");
Este sería fácil, porque no tiene filtro para limpiar la variable. Así que sería algo como esto,
Código (sql) [Seleccionar]
SELECT * FROM usuarios WHERE login='' or 1=1--'

Pero sí primero se realiza el SELECT y se guarda el pass en un array y después es comparado con la variable enviada, así,
Código (php) [Seleccionar]
$password = md5($_POST['pass']);
if($array["pass"] == $password ){


Como se podría bypassear?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

.mokk.

Pues bypassear ahi de esa forma no, pero si esa consulta en el post empezamos a mejorar ?
' union select 1,2,3, y asi hasta conseguir la DB luego de ello podria conseguir las tablas y de ahi pues conseguir usuarios y ya podria ingresar.

Shell Root

mmm, no me sirve... Y como se supone que printearía los datos?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

.mokk.

http://foro.elhacker.net/nivel_web/sql_injection_mediante_post-t265775.0.html

Asi ahi te muestra como, ya que de hecho esta misma pagina [ http://colaboranet.com/nctol/ ] usa ese metodo que tu mencionas hehe, ahi lo se porque logre entrar y obtener toda su DB.

~ Yoya ~

Sip entiendo, debes tener en cuenta que para que una SQL sea vulnerable, es necesario que use datos enviado por el usuario para poder usarlo y realizar la consulta.

Si es ese el caso, aunque no seria muy usual ya que seria mas lento hacerlo de esa forma y tampoco es la tipica forma de comprobar el password de la DB con el password ingresado. Lo mas probable es que utilize un nombre de usuario para hacer el select a un registro especifico y hay pudieras manejar la consulta SQL.

Dependiendo como maneje la consulta, si imprime algun campo pudieras extraer datos de la BD sin necesidad de poder hacerle un bypass al login.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

.mokk.

Cita de: ~ Yoya ~ en  1 Junio 2011, 20:18 PM
Sip entiendo, debes tener en cuenta que para que una SQL sea vulnerable, es necesario que use datos enviado por el usuario para poder usarlo y realizar la consulta.

Si es ese el caso, aunque no seria muy usual ya que seria mas lento hacerlo de esa forma y tampoco es la tipica forma de comprobar el password de la DB con el password ingresado. Lo mas probable es que utilize un nombre de usuario para hacer el select a un registro especifico y hay pudieras manejar la consulta SQL.

Dependiendo como maneje la consulta, si imprime algun campo pudieras extraer datos de la BD sin necesidad de poder hacerle un bypass al login.

Exacto, yo por eso intento usar siempre @mysql_blabla , asi si da algun error en la consulta el usuario no se daria cuenta lo que complicaria el asunto al intentar hacer algun ataque.