0% encontró este documento útil (0 votos)
211 vistas6 páginas

Inyeccion SQL

Este documento describe la técnica de inyección SQL, que permite a los piratas informáticos acceder a bases de datos insertando código malicioso en declaraciones SQL dinámicas. Explica cómo ataques como "OR 1=1" devuelven todas las filas de una tabla y cómo las herramientas automatizadas pueden ayudar a realizar ataques de inyección SQL de manera más eficiente. También advierte que las inyecciones SQL pueden usarse para eliminar, actualizar o insertar datos de manera dañina.

Cargado por

juadri
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
211 vistas6 páginas

Inyeccion SQL

Este documento describe la técnica de inyección SQL, que permite a los piratas informáticos acceder a bases de datos insertando código malicioso en declaraciones SQL dinámicas. Explica cómo ataques como "OR 1=1" devuelven todas las filas de una tabla y cómo las herramientas automatizadas pueden ayudar a realizar ataques de inyección SQL de manera más eficiente. También advierte que las inyecciones SQL pueden usarse para eliminar, actualizar o insertar datos de manera dañina.

Cargado por

juadri
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Fase 3: Otener acceso

Inyeccion SQL

La inyección SQL es una técnica de inyección de código que puede destruir


su base de datos.

La inyección SQL es una de las técnicas de piratería web más comunes.

La inyección SQL es la colocación de código malicioso en las declaraciones


SQL, a través de la entrada de la página web.

Cómo funciona la inyección SQL


Los tipos de ataques que se pueden realizar mediante inyección SQL varían
según el tipo de motor de base de datos. El ataque funciona en sentencias
SQL dinámicas. Una declaración dinámica es una declaración que se genera
en tiempo de ejecución utilizando parámetros de contraseña de un
formulario web o una cadena de consulta URI.

LA INYECCIÓN SQL BASADA EN "" = "" ES SIEMPRE


VERDADERA
Si no hay nada que impida que un usuario ingrese una entrada "incorrecta",
el usuario puede ingresar alguna entrada "inteligente" como esta:
La declaración en sql quedaría de esta forma

SELECT * FROM Users WHERE UserId = 105 OR 1=1;

El SQL anterior es válido y devolverá TODAS las filas de la tabla "Usuarios",


ya que OR 1 = 1 siempre es VERDADERO.

Otra forma parecida como quedaría nuestra declaración sql es esta


SELECT UserId, Name, Password FROM Users WHERE UserId = 105 or 1=1;

Un pirata informático puede obtener acceso a los nombres de usuario y


contraseñas en una base de datos simplemente insertando "O" "=" en el
cuadro de texto de nombre de usuario o contraseña:

Donde tendremos como resultado en donde el sql es válido y devolverá


todas las filas de la tabla "Usuarios", ya que OR "" = "" siempre es
VERDADERO.

SELECT * FROM Users WHERE Name ="" or ""="" AND Pass ="" or ""=""

INYECCIÓN SQL BASADA EN SENTENCIAS SQL POR LOTES

La mayoría de las bases de datos admiten instrucciones SQL por lotes.

Un lote de instrucciones SQL es un grupo de dos o más instrucciones SQL,


separadas por punto y coma.

Ejemplo

La declaración sql valida se vería asi

SELECT * FROM Users WHERE UserId = 105; DROP TABLE Suppliers;


Autenticación de derivación mediante
inyección de SQL

Forzar un error
Si ingresa una cadena con una comilla simple, como O'Brien el nombre
de usuario o la contraseña, obtendrá un error de software ya que el SQL
no es válido y no se puede analizar.

EJEMPLO PRACTICO INYECCIÓN SQL

Tenemos una aplicación web simple en [Link] que es


vulnerable a los ataques de inyección SQL solo con fines de demostración. El
código de formulario HTML anterior se toma de la página de inicio de
sesión. La aplicación proporciona seguridad básica, como desinfectar el
campo del correo electrónico. Esto significa que nuestro código anterior no
se puede usar para omitir el inicio de sesión.

Supongamos que un atacante proporciona la siguiente entrada

 Paso 1: Ingrese xxx@[Link] como la dirección de correo electrónico


 Paso 2: Ingrese xxx ') O 1 = 1 -]
 Haga clic en el botón Enviar
 Serás dirigido al tablero

La instrucción SQL generada será la siguiente

SELECCIONE * DE usuarios DONDE correo electrónico = ' xxx@[Link] ' Y


contraseña = md5 ('xxx') O 1 = 1 -] '); el sgte diagrama detalla como queda
la declaración sql

Otros tipos de ataque de inyección SQL


Las inyecciones SQL pueden hacer más daño que simplemente pasando los
algoritmos de inicio de sesión. Algunos de los ataques incluyen

 Eliminar datos
 Actualizando datos
 Insertar datos
 Ejecutar comandos en el servidor que pueden descargar e instalar
programas maliciosos como troyanos
 Exportar datos valiosos, como detalles de tarjetas de crédito, correo
electrónico y contraseñas al servidor remoto del atacante
 Obtener detalles de inicio de sesión del usuario, etc.

La lista de arriba no es exhaustiva; solo te da una idea de qué inyección SQL

Herramientas de automatización para inyección SQL


En el ejemplo anterior, utilizamos técnicas de ataque manual basadas en
nuestro vasto conocimiento de SQL. Existen herramientas automatizadas
que pueden ayudarlo a realizar los ataques de manera más eficiente y en el
menor tiempo posible. Estas herramientas incluyen

 SQLSmack - [Link]
 SQLPing
2: [Link]
=0&d=1
 SQLMap - [Link]

Bibliografía

[Link]

[Link]

[Link]

[Link]

También podría gustarte