domingo, 4 de diciembre de 2016

Aquí es cómo los hackers realizar un ataque de inyección SQL

Aquí es cómo los hackers realizar un ataque de inyección SQL

A (SQLI) ataque "inyección SQL" es un exploit que se aprovecha de las técnicas de desarrollo web pobres y, por lo general en combinación con, la base de datos de seguridad defectuoso. El resultado de un ataque exitoso puede variar de hacerse pasar por una cuenta de usuario a un compromiso completo de la base de datos o servidor correspondiente. A diferencia de un ataque DDoS, un ataque SQLI es completa y fácilmente evitables si una aplicación web está programado adecuadamente.
Ejecutar el ataque
Cada vez que inicie sesión en un sitio web e introduzca su nombre de usuario y contraseña, con el fin de probar sus credenciales de la aplicación web puede ejecutar una consulta como la siguiente:
SELECT UserID FROM Users WHERE UserName='myuser' AND Password='mypass';
Nota: los valores de cadena en una consulta SQL deben ir entre comillas simples por lo que aparecen alrededor de los valores introducidos por el usuario.
Por lo que la combinación del nombre introducido por el usuario (miusuario) y una contraseña (mypass) debe coincidir con una entrada en la tabla de usuarios con el fin de una identificación de usuario que ser devuelto. Si no hay ninguna coincidencia, sin ID de usuario se devuelve por lo que las credenciales de acceso no son válidos.Mientras que una aplicación particular puede variar, la mecánica es bastante estándar.
Así que ahora vamos a ver una plantilla de consulta de autenticación, que podemos sustituir los valores que el usuario introduce en el formulario web:
ID de usuario SELECT FROM usuarios WHERE = '[pasan]' nombre de usuario = [usuario] 'y la contraseña
A primera vista esto puede parecer un paso sencillo y lógico para los usuarios que validan fácilmente, sin embargo, si una simple sustitución de los valores introducidos por el usuario se lleva a cabo en esta plantilla, es susceptible a un ataque SQLI.
Por ejemplo, supongamos que "myuser'-" se introduce en el campo de nombre de usuario y "wrongpass" se introduce la contraseña. El uso de simple sustitución en nuestra consulta de plantilla, que se pueden conseguir esto:
SELECT UserID FROM Users WHERE UserName='myuser'--' AND Password='wrongpass'
Una clave para esta afirmación es la inclusión de los dos guiones (--)Este es el comentario de contadores empiezan de sentencias SQL, así que cualquier cosa que aparece después de los dos guiones (incluido) será ignorado. Esencialmente, la consulta anterior se ejecuta por la base de datos como:
SELECT UserID FROM Users WHERE UserName='myuser'
La omisión evidente aquí es la falta de la revisión de la contraseña. Con la inclusión de los dos guiones como parte del campo de usuario, hemos dejado por completo la condición de comprobación de contraseña y eran capaces de iniciar la sesión como "miusuario" sin conocer la contraseña correspondiente. Este acto de manipulación de la consulta para producir resultados no deseados es un ataque de inyección SQL.

No hay comentarios:

Publicar un comentario

Disqus Shortname

Comments system