Que es?
Un SQL Injection se basa en un fallo en la comunicación entre el usuario final y la base de datos. Consiste en un ataque contra un Gestor de Base de Datos Relacionales que aprovecha la vulnerabilidad de una aplicación. La vulnerabilidad es permitir mandar instrucciones SQL adicionales a partir de un campo o un parametro de entradas "inyectadas". Al estar vulnerables se puede lograr la finalidad de un ataque.
Como hacerlo?
Para ingresar a una pagina web nos podemos identificar con un usuario 'admin' es el mas común y en el password ponemos la siguiente sentencia: ‘ OR ”=’
Un SQL Injection se basa en un fallo en la comunicación entre el usuario final y la base de datos. Consiste en un ataque contra un Gestor de Base de Datos Relacionales que aprovecha la vulnerabilidad de una aplicación. La vulnerabilidad es permitir mandar instrucciones SQL adicionales a partir de un campo o un parametro de entradas "inyectadas". Al estar vulnerables se puede lograr la finalidad de un ataque.
Como hacerlo?
Para ingresar a una pagina web nos podemos identificar con un usuario 'admin' es el mas común y en el password ponemos la siguiente sentencia: ‘ OR ”=’
Con esta consulta engañamos al sistema ya que forzamos una comparación de “nada” es igual a “nada” lo que nos da acceso al sistema.
Al igual que la anterior consulta se pueden intentar inyectar unas cuantas más forzando comparaciones simples (OR 1=1) o intentando comentar el código con “//” o “/* */”
Evitar un SQL Injection
Se deben controlar los datos de entrada, no se deben confiar en las entradas de los usuarios, no utilizar secuencias SQL construidas dinamicamente, no utilizar cuentas con privilegios administrativos.
filtrar las consultas con mysql_real_escape_string()
$u
=mysql_real_escape_string(
$_POST
[
'usuario'
]);
$p
=mysql_real_escape_string(
$_POST
[
'password'
]);
SELECT * FROM users WHERE user=
'$u'
AND password=
'$p'
mysql_real_escape_string() llama a la función de la biblioteca MySQL mysql_real_escape_string, la cual coloca barras invertidas antes de los siguientes caracteres: \x00, \n, \r, \, ‘, ” y \x1a
|