0% encontró este documento útil (0 votos)
42 vistas2 páginas

Inyeccion SQL

Una inyección SQL es una vulnerabilidad crítica que permite a un atacante inyectar sentencias SQL a través de los inputs de una aplicación web, generalmente cuando la aplicación construye sentencias SQL de forma insegura usando parámetros del usuario sin sanitizar. Esto puede usarse para alterar la funcionalidad del sitio web, acceder a información confidencial de la base de datos, o incluso tomar el control completo del servidor subyacente. Las inyecciones SQL ciegas no muestran errores directamente, sino que producen cambios sutiles en la p

Cargado por

Lised Hernandez
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)
42 vistas2 páginas

Inyeccion SQL

Una inyección SQL es una vulnerabilidad crítica que permite a un atacante inyectar sentencias SQL a través de los inputs de una aplicación web, generalmente cuando la aplicación construye sentencias SQL de forma insegura usando parámetros del usuario sin sanitizar. Esto puede usarse para alterar la funcionalidad del sitio web, acceder a información confidencial de la base de datos, o incluso tomar el control completo del servidor subyacente. Las inyecciones SQL ciegas no muestran errores directamente, sino que producen cambios sutiles en la p

Cargado por

Lised Hernandez
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
Está en la página 1/ 2

INYECCION SQL

Una inyección SQL es una vulnerabilidad categorizada como crítica, la cual permite a un atacante
inyectar sentencias SQL a través del(los) input(s) de un aplicativo web. Esta vulnerabilidad se
puede producir automáticamente cuando un programa "arma descuidadamente" una sentencia
SQL en tiempo de ejecución, o bien durante la fase de desarrollo, cuando el programador explicita
la sentencia SQL a ejecutar en forma desprotegida. En cualquier caso, siempre que el programador
necesite y haga uso de parámetros a ingresar por parte del usuario, a efectos de consultar una
base de datos; ya que, justamente, dentro de los parámetros es donde se puede incorporar el
código SQL intruso. Para entrar en detalle de cómo funciona esta vulnerabilidad pondremos el
siguiente ejemplo:

En la imagen anterior es posible observar un claro ejemplo de una inyección SQL, aquel input
genera consulta a la base de datos del sistema, sin embargo si se agrega una comilla simple nos
podemos percatar que se genera un error SQL, el cual hace referencia al motor de base de datos
Mysql. Este error se produce porque la aplicación no sanitiza caracteres especiales, y en base a los
errores que devuelve la aplicación es posible inyectar sentencias SQL. También existen las
inyecciones SQL ciegas, estas inyecciones se caracterizan por no mostrar un error directamente en
el aplicativo web, si no que producen cambios (alteraciones) distintos, como por ejemplo hacer
que un botón o un checkbox aparezca en otro lado del sitio web, etc,  también es posible que
respondan a una inyección basada en tiempo, el cual hace que el sitio web sea pausado por una
cierta cantidad de tiempo,  veamos un ejemplo de este tipo de inyección:

Tenemos la siguiente URL:


Cabe mencionar que las inyecciones SQL no son solo son
inyectables a través de los recursos o campos visibles del
aplicativo web (ejemplo: php?id=), sino que también es
posible realizar inyecciones SQL en parámetros de la
aplicación tales como el Host, User-Agent, Referer, Headers.
Como es posible observar en las imagen anterior, se
inyectaron los Headers de la aplicación (obviamente esta
vulnerabilidad fue detectada con anterioridad a través de
una herramienta automatizada). La inyección SQL ciega basada
en tiempo hace que la base de datos se pause por un tiempo
especificado, para que posteriormente devuelva los
resultados, a través de esta inyección, un atacante enumera
cada letra de la porción de datos que desea leer usando la
siguiente lógica:
Si la primera letra del nombre de la Base de Datos es una
“A”, esperar 10 segundos.
Si la primera letra del nombre de la Base de Datos es una
“B”, esperar 10 segundos, etc…
Así con cada letra, si la respuesta tarda diez segundos es
que es la letra por la que preguntamos si no es así
continuamos con la siguiente. Por esta razón para este tipo
de inyecciones siempre es recomendable utilizar una
herramienta automatizada como Sqlmap, ya que facilita el
trabajo y nos permite ahorrar una gran cantidad de tiempo.

También podría gustarte