Hola y Bienvenidos a mi otro instructivo. En este instructable te diré cómo a hackear un sitio web en menos de 2 minutos usando inyección de SQL.
'' Yo estoy no se responsabiliza por cualquier hackeo hecho por alguien ''
Introducción a la inyección de Sql:
Una inyección SQL es un tipo de vulnerabilidad de la inyección en el que
el atacante intenta inyectar piezas arbitrarias de datos maliciosos en los campos de entrada de una aplicación, que, cuando el procesado por la aplicación, hace que no preveían datos para ejecutarse como un trozo de código por el back-end SQL server dando no deseado resulta que el desarrollador de la aplicación. El servidor back-end puede ser cualquier servidor SQL (MySQL, MSSQL, ORACLE, POSTGRESS, para nombrar unos pocos)
La capacidad del atacante para ejecutar código (sentencias SQL) a través de parámetros de entrada vulnerables faculta a interactuar directamente con el back-end SQL server tal modo aprovechar casi un compromiso completo del sistema en la mayoría de los casos.
¿Por qué produce la inyección de SQL?
Generalmente cuando una aplicación se comunica con el servidor
base de datos, lo hace en forma de consultas con la ayuda de un controlador de base de datos subyacente. Este controlador es dependiente de la plataforma de aplicaciones se utilizan y el tipo de base de datos back-end, como MYSQL, MSSQL, DB2 u ORACLE.
Una consulta de inicio de sesión genérica sería algo como esto:
' SELECT Column1, Column2, Column3 de table_name WHERE nombre_usuario =' $variable1′ y contraseña = '$variable2′;'
Podemos dividir esta pregunta en dos partes, la sección del código y la sección de datos. La sección de datos es el $variable1 y $variable2 y cotizaciones se utilizan alrededor de la variable para definir el límite de la cadena.
Permítanos caminar a través del proceso de una manera cruda. Decir en el formulario de login, el nombre de usuario introducido es Admin y contraseña es p que es recogida por el uso y valores de $variable1 y $variable2 se colocan en sus respectivos lugares en la consulta, lo que es algo como esto.
' Seleccionar Column1, column2, Column3 de table_name WHERE nombre_usuario = 'Admin' AND contraseña ='p
Ahora el desarrollador asume que los usuarios de su aplicación siempre pondrá una combinación nombre de usuario y contraseña para obtener una consulta válida para la evaluación de la base de datos back-end. ¿Qué pasa si el usuario es malévolo y escribe algunos caracteres que tienen algún significado especial en la consulta? Por ejemplo, una comilla simple. Así, en vez de poner Admin, pone Admin', de tal modo causando un error arrojado por el controlador de DB. ¿Por qué? Debido a la cotización introducida por el usuario rompiendo la lógica de la aplicación.