SQL Injection

Sql Injection. Inyección SQL Inyección SQL es un método de infiltración de Sql Injection. código intruso que se vale d

Views 281 Downloads 2 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • Julio
Citation preview

Sql Injection. Inyección SQL

Inyección SQL es un método de infiltración de Sql Injection. código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar operaciones sobre una base de datos. El origen de la vulnerabilidad radica en la incorrecta comprobación o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Se dice que existe o se produjo una inyección SQL Sql Injection. cuando, de alguna manera, se inserta o "inyecta" código SQL invasor dentro del código SQL programado Este tipo de intrusión normalmente es de carácter malicioso, dañino o espía

Si el operador escribe un nombre, por ejemplo "Alicia", nada anormal sucederá, la aplicación generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde se seleccionarían todos los registros con el nombre "Alicia" en la base de datos

Sql Injection.

Pero si un operador malintencionado escribe como nombre de usuario a consultar

se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador, el azul es el dato, y el rojo, el código SQL inyectado):

Inyección SQL Ciega

Sql Injection.

Ataque a ciegas por inyección SQL, en inglés, Blind SQL injection, es una técnica de ataque que utiliza la inyección SQL. Se evidencia cuando en una página web, por una falla de seguridad, no se muestran mensajes de error al no producirse resultados correctos ante una consulta a la base de datos, mostrándose siempre el mismo contenido (es decir, solo hay respuesta si el resultado es correcto). Existen programas que automatizan este proceso de “tanteos” letra por letra en el resultado de la consulta SQL, que un intruso podría enviar inyectado. Esta técnica se usa cuando una web no muestra los típicos mensajes de error de datos, al no haber un resultado positivo en una consulta especifica, o sea que solo se enviará una respuesta por parte del servidor se el resultado es correcto. Es por ello sentencias que contengan entre sus condiciones valores comparativos como 1=1 o 0=1 ofrecen respuestas, bien sea respuestas negativas o positivas, esta es la base de esta técnica de inyección SQL.

Sql Injection. Algunas formas de inyectar código a ciegas en distintos gestores: Microsoft SQL Server: http://server/ejemplo.php?id=35; if (exists(select * from Passwords)) waitfor delay ‘0:0:8’— Mysql_ http://server/ejemplo.php?id=35 and exists(select * from Passwords and benchmark(8000000,md5(rand()))=0 Mysql (Versión 5) http://server/ejemplo.asp?id=35 and exists(select * from Passwords) and sleep(8)

Oracle: http://server/ejemplo.php?id=1; begin if (exists(select * from Passwords)) then dbms_lock.sleep(8); end if; end;

Sql Injection. 2

La aplicación recibe la solicitud y consulta la BD para obtener el resultado, es decir, realiza una consulta SQL MODIFICADA POR EL ATACANTE

El usuario MALICIOSO modifica el envío Get (por ejemplo), colocando en la url la sentencia SQL

1

http://www.pagina.com/producto.php?ID=10 UNION SELECT SHOW DATABASE()

4

El usuario recibe el resultado mostrado por la aplicación SQL

3

La Base de Datos ejecuta la sentencia SQL y devuelve el resultado. POR LO GENERAL DEVUELVE INFORMACIÓN CONFINDECIAL

Como encontrar una Vulnerabilidad de Sql Injection. inyección SQL. Es un procedimiento muy sencillo no es necesario utilizar un programa unicamente con un navegador de preferencia Google o San Google como lo conocen algunos informáticos ya que este navegador tiene la capacidad de indexar todas las paginas de internet con una coincidencia.

En el navegador escribir lo siguiente. Sql Injection. php?id= Esto generara varias respuestas.

Abrimos cualquier pagina que se encuentre en los Sql Injection. resultados. Y al final de php?id= agregara un numero por ejemplo 200 y le agregamos 200'

Nos aparecera el siguiente error , este error nos Sql Injection. indicara que la pagina cuenta con una vulnerabilidad. El error que debe presentar es el siguiente.

Como funciona el ataque SQL Injection? Sql Injection. Como se indico anteriormente agregandole una comilla

Se dice que existe o se produjo una inyección SQL cuando, de alguna manera, se inserta o "inyecta" Sql Injection. código SQL invasor dentro del código SQL programado, a fin de alterar el funcionamiento normal del programa y lograr así que se ejecute la porción de código "invasor" incrustado, en la base de datos. Este tipo de intrusión normalmente es de carácter malicioso, dañino o espía, por tanto es un problema de seguridad informática, y debe ser tomado en cuenta por el programador de la aplicación para poder prevenirlo. Un programa elaborado con descuido, displicencia o con ignorancia del problema, podrá resultar ser vulnerable, y la seguridad del sistema (base de datos) podrá quedar eventualmente comprometida.

Se dice que existe o se produjo una inyección SQL cuando, de alguna manera, se inserta o "inyecta" Sql Injection. código SQL invasor dentro del código SQL programado, a fin de alterar el funcionamiento normal del programa y lograr así que se ejecute la porción de código "invasor" incrustado, en la base de datos. Este tipo de intrusión normalmente es de carácter malicioso, dañino o espía, por tanto es un problema de seguridad informática, y debe ser tomado en cuenta por el programador de la aplicación para poder prevenirlo. Un programa elaborado con descuido, displicencia o con ignorancia del problema, podrá resultar ser vulnerable, y la seguridad del sistema (base de datos) podrá quedar eventualmente comprometida.

Que se puede obtener de una inyección SQL. Acceder al panel administrativo de una pagina web. Sqlrobar Injection. Modificar el diseño informacion de la base de datos.

Un ejemplo de un panel de administración.

Sql Injection.

Un ejemplo de un panel de administración.

Sql Injection.

Sql Injection. Como realizar un ataque de inyeccion sql en kali. En kali linux utilizaremos sql map. En el comando U escribiremos la direccion de la pagina web vulnerable ejecutamos y realizara su trabajo.

Con esto obtendremos el nombre de la base de datos o bases de datos Sql disponibles. Injection.

Sql Injection.

Apuntaremos hacia la base de datos para obtener las tablas. Al final debemos de agregar –tables. Ya que eso es nuestro objetivo.

Sql Injection.

Apuntaremos hacia la base de datos para obtener las tablas. Al final debemos de agregar –tables. Ya que eso es nuestro objetivo.

Apuntaremos hacia la base de datos para obtener las tablas. Al final debemos de agregar –tables. Ya que Sql Injection. eso es nuestro objetivo. Y la que necesitamos es la del administrador para acceder al panel de administrador.

Extraeremos los datos de la tabla webmaster. El comando que seSql usaInjection. es el siguiente sqlmap u(se refiere a la url) (pagina vulnerable) –D (datos) –T la tabla –C (usuario, el de acceso, contraseña la que se necesita –Dump(extraer datos).

Extraeremos los datos de la tabla webmaster. El comando que seSql usaInjection. es el siguiente sqlmap u(se refiere a la url) (pagina vulnerable) –D (datos) –T la tabla –C (usuario, el de acceso, contraseña la que se necesita –Dump(extraer datos).

Al finalizar nos indicara un mensaje que Sql los Injection. hemos extraido datos de la tabla de panel de administrador.

Sql Injection.

.

Escapar los caracteres especiales utilizados en las consultas SQL Sql Injection. Al hablar de “escapar caracteres” estamos haciendo referencia a añadir la barra invertida “\” delante de las cadenas utilizadas en las consultas SQL para evitar que estas corrompan la consulta. Algunos de estos caracteres especiales que es aconsejable escapar son las comillas dobles (“), las comillas simples (‘) o los caracteres \x00 o \x1a ya que son considerados como peligrosos pues pueden ser utilizados durante los ataques

Delimitar los valores de las consultas Aunque el valor de la consulta sea un entero, es Sql Injection. aconsejable delimitarlo siempre entre comillas simples. Una instrucción SQL del tipo: SELECT nombre FROM usuarios WHERE id_user = $id Será mucho más fácilmente inyectable que: SELECT nombre FROM usuarios WHERE id_user = ‘$id’ Donde $id es un número entero.

Delimitar los valores de las consultas

Sql Injection.

Delimitar los valores de las consultas

Sql Injection.

Delimitar los valores de las consultas

Sql Injection.

Delimitar los valores de las consultas

Sql Injection.

Herramientas de Análisis de inyección SQL.

Sql Injection.

Otra de las opciones que podemos utilizar para realizar un análisis de nuestro código es el uso de herramientas que testeen nuestras aplicaciones en busca de vulnerabilidades por inyección SQL. Algunas de estas herramientas son: SQLiHelper 2.7 SQL Injection: Se trata de una aplicación cuyo objetivo es facilitar la extracción de información procedente de bases de datos utilizando para ello técnicas de inyección SQL. Una vez indicada la url que queremos analizar, la aplicación realizará peticiones inyectando código SQL con el fin de comprobar si es realmente vulnerable. Pangolin: Se trata de una herramienta de pago que ofrece más posibilidades que la vista en el punto anterior y que está destinada a descubrir vulnerabilidades tanto del tipo inyección SQL como inyección SQL ciego. SQLMap: Se trata de una herramienta de pruebas de código abierto que automatiza el proceso de detectar y explorar los errores de inyección SQL

Ciberataque SQL injection

Sql Injection.

En Junio de 2012, la gran empresa cinematográfica Sony Pictures Entertainment fue objetivo de los ciberdelincuentes. El grupo de hackers conocido como LulzSec se atribuye el robo de datos personales de un millón de usuarios de Sony Pictures Entertainment, la división de cine de Sony. La técnica empleada para perpetrar el ataque es la conocida como SQL injection, mediante la cual lograron los datos de más de 1.000.000 de usuarios, incluyendo contraseñas, direcciones de correo electrónico, direcciones postales y fechas de nacimiento. También han podido acceder a detalles de la administración de Sony Pictures, incluidas las contraseñas, además de 75.000 “códigos de la música” y 3,5 millones de “cupones de la música”.

Ciberataque SQL injection

Sql Injection.

Datos de Yahoo! expuestos a través de inyección SQL

Tuvieron acceso total a los archivos de copia de respaldo de uno de los servidores de dominio de Yahoo! y a doce bases de datos. Los agujeros de seguridad que permitieron dichos ataques son la explotación de una vulnerabilidad de inyección SQL en uno de los dominios de la compañía y a otra del tipo Cross Site Scripting (XSS). De acuerdo al portal de noticias The Hacker News, los problemas fueron reportados por Virus_Hima hace algún tiempo sin conseguir ningún tipo de respuesta por parte de la empresa afectada

Ejemplo de Ciberataque SQL injection

Sql Injection.

Atacan la web de MySQL a través de SQL Injection El sitio web de MySQL ha sido objeto de un ataque a través de una vulnerabilidad de inyección ciega de código SQL. Se trata de un fallo en el código de la aplicación web y no de la base de datos. MySQL es una popular base de datos de código abierto. MySQL es propiedad de Oracle tras la compra de SUN, su antigua propietaria. El ataque se atribuye a TinKode y Ne0h del grupo Rumano Slacker.Ro. Los datos extraídos han sido publicados en el sitio pastebin.com; algo que viene siendo habitual en este tipo de “hazañas”. Además del sitio principal los atacantes replicaron el ataque en las versiones localizadas de MySQL.com. En concreto las versiones francesa, alemana, italiana y japonesa. Los datos expuestos se corresponden con las credenciales de los usuarios del servidor MySQL y el volcado de la base de datos principal del sitio. Entre las credenciales pueden observarse nombres de usuario, contraseñas hasheadas, correos y direcciones

Ciberataque SQL injection

Sql Injection.

Anonymous Guatemala ataca sitios web del gobierno

La red de ciberpiratas Anonymous Guatemala se atribuyó el fallo de las páginas web del Ministerio de Agricultura, el Ministerio de Trabajo, la Corte de Constitucionalidad y la Policía Nacional Civil (PNC).

Sql Injection.

Muchas gracias por su atención.