sábado 31 de octubre de 2009

Sql Injection Login Bypass - La Explicación

En algun momento nosotros hemos hecho un login bypass para entrar mediante una sql injection...

Nuestro Code Vulnerable seria algo como este:


<?php

$user = $_POST['username'];

$pass = md5($_POST['password']);

$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = '$user' AND password = '$pass'")

or die("<p><i>" . mysql_error() . "</i></p>\n");

?>


Ahora el codigo esta chequeando mal el user y la pass, no está bien puesto el codigo... entonces si nosotros pusieramos en el login:

username : admin ' or ' 1=1
password : mipassnoesesta

lo que hriamos nosotros sería transformar la petición en básicamente esto:

$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = 'admin' ' or ' 1=1 AND password = 'mipassnoesesta'")

Ahora nostros solo tendriamos que poner un usuario que exista y entrariamos como tal... genial no?

para aquellos que solo sabian que si ponian la inyeccion entraban ya saben por que es y bueno para evitar esto pues podriamos usar los mismo que en el anterior tutorial de como obtener archivos del servidor con sql injection

esas tecnicas pueden usar para evitar esto...


Espero les haya gustado y asi pueden evitar que les pase esto a las empresas que los contrate...


Saludos
Dr.White

1 comentarios:

Daniel Ramirez Echeverri dijo...

Tienes razon, que facil es vulnerar la seguridad si no se toman las medidas respectivas, para esto se usan las magicquotes no?

o tambien disponemos de las dos funciones de php.

Esta muy bueno este blog, material que me es de gran utilidad.

Saludos