sql injection

17
I.S.C. Victor H. Garcia Inyección SQL

Upload: leonardo-raygoza

Post on 24-May-2015

1.235 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Sql Injection

I.S.C. Victor H. Garcia

Inyección SQL

Page 2: Sql Injection

Que es SQL?

Page 3: Sql Injection

El usuario coloca información que suple datos y ellos son validos para una aplicación sin una apropiada validación.

Procesados como comandos SQL.

Page 4: Sql Injection

Una tipica consulta SQL es: select id, Firstname, Lastname from authors select id, FirstName, LastName from authors

where FirstName = 'john' and LastName = 'smith'

FirstName: jo'hn LastName: smith La ‘consulta' se convierte en: select id, forename, surname from authors

where FirstName = 'jo'hn' and LastName = 'smith'

Page 5: Sql Injection

Error: Incorrect syntax near 'Name'.

Unclosed quotation mark after the character string ')'.

Ahora el ataque: FirstName: jo'; drop table authors--

Page 6: Sql Injection
Page 7: Sql Injection

Extraer datos confidenciales Agregar o Modificar datos Impedir el acceso al sistema Identificacion exitosa de usuario

admin Ejecutar comandos remotos

Page 8: Sql Injection
Page 9: Sql Injection

Inyección atraves de la entrada de un usuario Cadenas peligrosas en un formulario web.

Inyección atraves de cookies Modificando campos de una cookie que

contenga una cadena peligrosa.

Inyección atraves de variables del servidor Las cabeceras son modificadas para poner una

cadena peligrosa.

Inyección SQL de segundo orden Un caballo de troya donde todo parece bien

hasta que cierta situación cambia.

Page 10: Sql Injection

Consultas peligrosas en el DB server Tautologias Codificación Alterna Ilegal/logicas consultas incorrectas Union Query Stored Procedures

Page 11: Sql Injection

Insertar consultas adicionales para que estas sean ejecutadas por el servidor

queryString = “SELECT info FROM userTable WHERE” +

“login=‘” + login + “' AND pin=” + pin; Input pin as “0; DROP database

webApp” queryString = “SELECT info FROM

userTable WHERE login=‘name' AND pin=0; DROP

database webApp”

Page 12: Sql Injection

Crear una consulta que siempre evalue una entrada valida en SQL

queryString = “SELECT info FROM userTable WHERE” +

“login=‘” + login + “' AND pin=” + pin;

Input login as “user’ or 1=1 --” queryString = “SELECT info FROM

userTable WHERE login=‘user‘ or 1=1 --' AND pin=“

Page 13: Sql Injection

Prevención

Detectar vulnerabilidades en el codigo

Librerias seguras

Detección

Detectar ataques en tiempo de ejecución

Page 14: Sql Injection

Defensa con las mejores practicas de programación

Pruebas de Inyección Analisis estatico del codigo Librerias de desarrollo seguras

Page 15: Sql Injection

Anomalias basadas en el codigo malicioso.

Page 16: Sql Injection

1. SQL tiene: a) Muchas fuentes b) Muchos Objetivos c) Muchos Tipos

2. Las técnicas de detección pueden ser efectivas pero limitadas debido a que son las mismas

3. Técnicas de prevención pueden ser muy efectivas, pero eso ya depende del programador.

Page 17: Sql Injection

ivictorhugo

http://www.facebook.com/vhugo

http://mx.linkedin.com/in/victorhugogarcia