Está en la página 1de 100

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Seguridad en entornos web


Inyecciones SQL Artur L. Pinto Monteiro
Departamento de Consultoria NextVision Ibrica

Seminarios CNTG, 2011

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

@georg_cantor

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Alineamiento
1

Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Alineamiento
1

Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Existen factores que conducen a inyecciones SQL. Una aplicacin que rena dichos factores se encuentra en riesgo.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Factores de riesgo Datos externos Consultas dinmicas Saneamiento

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Factores de riesgo Datos externos Consultas dinmicas Saneamiento

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Factores de riesgo Datos externos Consultas dinmicas Saneamiento

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Factores de riesgo Datos externos Consultas dinmicas Saneamiento

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Datos externos La aplicacin permite la adquisicin de datos desde fuentes externas: usuarios, archivos, etc. En esta relacin, la aplicacin debera siempre, asumir que los datos recibidos estn contaminados (tainted data).

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Consultas dinmicas El cdigo de la aplicacin emplea un modelo de datos que requiere el uso de un DBMS y adems genera consultas al DBMS con los datos obtenidos de fuentes externas.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo ocurre en general?


Factores de riesgo

Saneamiento Validacin inapropiada de datos externos. El cdigo desarrollado no ltra adecuadamente los datos recibidos de fuentes externas o no implementa ningn procedimiento de validacin.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Consultas SQL parametrizadas Consultas rgidas y predecibles preparadas empleando una capa de abstraccin del driver SQL en uso por la aplicacin.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Procedimientos almacenados Consultas rgidas y predecibles implementadas en el DBMS.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cmo abordar el problema?


Factores bsicos de mitigacin

Validacin contra listas blancas Controles estrictos que validan de manera rgida los datos recibidos, incorporando restricciones sobre, tipo de datos, longitud y formato en general.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Resumen
Factores bsicos de riesgo y mitigacin

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Principales consecuencias Condencialidad Autenticacin Autorizacin Integridad

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Principales consecuencias Condencialidad Autenticacin Autorizacin Integridad

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Principales consecuencias Condencialidad Autenticacin Autorizacin Integridad

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Principales consecuencias Condencialidad Autenticacin Autorizacin Integridad

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Principales consecuencias Condencialidad Autenticacin Autorizacin Integridad

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Condencialidad Que un usuario no autorizado pueda explotar una inyeccin SQL para abusar del DBMS y obtener acceso no autorizado datos sensibles genera la perdida inmediata de condencialidad de los mismos.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Autenticacin Que un usuario pueda manipular un artefacto de autenticacin que recurre a consultas SQL poco robustas como mecanismo de validacin podra permitir a un agresor emplear inyecciones SQL para comprometer la lgica implementada.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Autorizacin Cuando un sistema poco robusto dependa un de DBMS para la gestin de privilegios, roles o otros una inyeccin SQL podra permitir a un agresor manipular el sistema para escalar sus privilegios vertical o horizontalmente.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Cual es el impacto?
Principales consecuencias

Integridad Una aplicacin que maneje una conexin con privilegios CRUD en el DBMS, si expuesta a una inyeccin SQL podra permitir a un usuario mal intencionado manipular la informacin almacenada.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Anatoma del problema

Resumen
Principales consecuencias

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Alineamiento
1

Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?

El objetivo del ataque limita, en general, el tipo de tcnica a emplear y dene el trabajo previo a la explotacin activa.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?


Objetivos frecuentes

Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?


Objetivos frecuentes

Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?


Objetivos frecuentes

Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?


Objetivos frecuentes

Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?


Objetivos frecuentes

Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Cual es el objetivo de la explotacin?


Objetivos frecuentes

Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?

El tipo de inyeccin denir la calidad del ataque y la necesidad o no de automatizacin sosticada.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Canales Inband Out-of-band Inferencial

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Canales Inband Out-of-band Inferencial

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Canales Inband Out-of-band Inferencial

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Canales Inband Out-of-band Inferencial

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Inband Los datos son extrados empleando el mismo canal de la inyeccin SQL. Los datos se presentan directamente en la respuesta de la aplicacin.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Out-of-band Los datos se recuperan empleando un canal diferente (por ejemplo, se enva un correo eletronico con los resultados de la consulta SQL).

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Canales

Inferencial No ocurre transferencia de datos pero el agresor es capaz de reconstruir la informacin contenida en los resultados de la consulta SQL.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Con base al canal disponible se pueden agrupar, de manera discutible, los tipos de inyeccin en dos lineas generales.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Taxonoma Inyecciones basadas en errores Inyecciones ciegas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Taxonoma Inyecciones basadas en errores Inyecciones ciegas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Taxonoma Inyecciones basadas en errores Inyecciones ciegas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Inyecciones basadas en errores Este es el tipo de vector ms fcil de ejecutar y se caracteriza por utilizar un canal inband para la transferencia de datos.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Inyecciones ciegas Este vector de ataque se caracteriza por necesitar, en general, automatizacin. Los datos se obtienen por un canal out-of-band o inferencial.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Inyecciones ciegas Inyecciones parcialmente ciegas (Partially Blind Injection) Inyecciones totalmente ciegas (Full Blind Injection)

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Inyecciones ciegas Inyecciones parcialmente ciegas (Partially Blind Injection) Inyecciones totalmente ciegas (Full Blind Injection)

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Taxonoma

Que tipo de inyeccin se ha detectado?


Taxonoma

Inyecciones ciegas Inyecciones parcialmente ciegas (Partially Blind Injection) Inyecciones totalmente ciegas (Full Blind Injection)

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Alineamiento
1

Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Cdigo defectuoso
function index(){ if ($this->input->post(login)) { $login_usuario = $this->input->post(login_usuario); $login_password = $this->input->post(login_password); $query = $this->db->query("SELECT usuario, isAdmin FROM usuarios WHERE usuario =$login_usuario AND password=$login_password}"); if ($query->num_rows() > 0) { $row = $query->row(); if ($row->isAdmin == true) {$this->load->view(demo_admin);} else {$this->load->view(demo_user);} } else { $this->load->view(demo_login);} } else { $this->load->view(demo_login); } }

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Cdigo defectuoso

$query = $this->db->query( "SELECT usuario, isAdmin FROM usuarios WHERE usuario = $login_usuario AND password = $login_password}");

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Cdigo defectuoso
Payload bsico

Carga maliciosa a inyectar OR 1=1

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Cdigo defectuoso
Payload bsico

SELECT usuario, isAdmin FROM usuarios WHERE usuario= OR 1=1-- AND password=

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

La adquisicin de informacin sobre el modelo de datos empleado, la estructura de la base de datos y si posible de la consulta base sobre la cual se inyecta es una de las fases ms importantes en un ataque de inyeccin SQL.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

Una de las primeras acciones a desarrollar es identicar si es posible crear una sentencia UNION vlida, ya que de ser el caso, la extraccin de informacin del DBMS se har de una manera ms eciente.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

UNION, fuerza bruta Tcnica de fuerza bruta por Null Tcnica de fuerza bruta por ORDER BY

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

UNION, fuerza bruta Tcnica de fuerza bruta por Null Tcnica de fuerza bruta por ORDER BY

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

UNION, fuerza bruta Tcnica de fuerza bruta por Null Tcnica de fuerza bruta por ORDER BY

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

Supongamos que en un consulta base, estn presente 5 columnas, la siguiente sentencia, generar entonces una consulta UNION vlida.
... UNION SELECT null, null, null, null, null --

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

... ORDER BY 1 -- Sin errores ... ... ORDER BY 5 -- Sin errores ... ORDER BY 6 -- Genera error!

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Inriendo el modelo de datos a partir de errores

/*!32302 <instruccion>*/ SELECT CONCAT("Version >= 5.01.49? "/*!50149 ,"TRUE"*/)

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Extraccin de datos

Para la correcta extraccin de datos se hace necesario conocer la organizacin de los mismos. Una manera efectiva de enumerar la estructura de la base de datos es recurrir a la informacin de sistema.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Extraccin de datos

Enumerando bases de datos Como etapa inicial resulta til determinar que bases de datos se encuentran disponibles en el DBMS.
SELECT schema_name FROM information_schema. schemata

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Extraccin de datos

Enumerando tablas information_schema tambin permite enumerar las tablas correspondientes a una base de datos concreta.
SELECT table_name FROM information_schema. tables WHERE table_schema = (SELECT database())

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones basadas en errores


Extraccin de datos

Extraccin de datos En posesin de un vector de inyeccin UNION y la informacin enumerada, se puede construir la estructura bsica para las inyecciones siguientes con la que extraer los datos deseados.
... UNION SELECT CONCAT(Shell>,(SELECT columna FROM tabla LIMIT 0,1)), ..., null

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones ciegas

La mecnica empleada en esta variante del ataque no diere de la empleada en las inyecciones basadas en error, pero si se hace necesario la introduccin de unos artefactos especiales.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones ciegas
Parcialmente ciegas

Inyecciones parcialmente ciegas Este caso particular de inyecciones ocurre cuando es posible inyectar cdigo que sea evaluado en el DBMS pero nicamente se pueden observar alteraciones en la respuesta de la aplicacin.
.. AND 1=(SELECT IF(SUBSTRING(@@version,1,1)=< parametro>,1,0))

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Tcnicas comn y vectores de inyeccin

Inyecciones ciegas
totalmente ciegas

Inyecciones totalmente ciegas Esta modalidad ocurre cuando un usuario es capaz de determinar la existencia de la inyeccin pero no se observa ninguna alteracin en el comportamiento de la aplicacin.
SELECT IF(SUBSTRING(@@version,1,1)=<parametro >,BENCHMARK(100000,SHA1(1)),0)

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Alineamiento
1

Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes

Los motores de rmas de sistemas comerciales como Fortinet o iniciativas opensource como Snort o Suricata se encuentran basados en sistemas PCRE o en lgicas de bsquedas con Wildcards o Keywords.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Ofuscacin con comentarios


/**/SELECT/**/@@version/**/ /**/SEL/**/ECT/**/@@version/**/

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Ofuscacin con codicacin URI


%53 %45 %4C %45 %43 %54 %20 %40 %40 %76 %65 %72 %73 %69 %6F %6E

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Numbing y Decoys
/*UgxcHr5LNNJPQh...iBcyRbLlkHXeMC1*/SELECT/*Ugxc... Hr5LNNJPQhiBcyRbLlkHXeMC1*/@@version/* UgxcHr5LNNJPQhiBcyRbLl...kHXeMC1*/ /* <Decoy Keyword> */SELECT @@version

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Evasin de rmas

Ofuscacin hbrida
S %45LECT %20/*UgxcHr5LNNJPQh %2A %2F %40 %40version

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Blind spot

Las arquitecturas de los sistemas IDS/IPS/WAF y cortafuegos perimetrales no son inmunes a puntos dbiles.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Blind spot

El uso de SSL puede ser toda la evasin que un agresor necesite para dejar ciega toda una infraestructura de defensa perimetral.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Blind spot

Una conguracin defectuosa o negligente puede generar puntos ciegos.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Evasin de sistemas IDS/IPS

Mtodos comunes
Blind spot

Hasta la versin 2.8.6.1 del IDS Snort se omita la opcin inspect_gzip en la conguracin por defecto del preprocesador http_inspect. Este comportamiento se ha alterado en las versiones ms recientes, como la 2.9.0.3.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Alineamiento
1

Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos

Explotar activamente una inyeccin SQL puede ser lento y tedioso. El uso de herramientas externas puede introducir limitaciones ya que puede ocurrir que estas no se encuentran orientadas a trabajar con el DBMS a ser explotado o no implementen una funcionalidad necesaria.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

Un auditor ha identicado en una aplicacin alrededor de 12 puntos de inyeccin. El administrador del DBMS monitoriza activamente el registro de eventos en bsqueda de errores y los compara con un baseline. Los resultados se consideran un xito, si en cada inyeccin el auditor es capaz de ejecutar un UNION SELECT @@version.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

... ... ... ...

ORDER ORDER ... ORDER ORDER

- Sin error - Sin error Sin error BY n 1 - Sin error BY n - Con error BY 1 BY 2

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

En algunas ocasiones puede existir una herramienta con el potencial de realizar el ataque que deseamos pero se considera necesario extenderla.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

Consideremos por ejemplo una aplicacin que sea capaz de realizar la inyeccin pero que no disponga de ningn mtodo de evasin de IDS/IPS.

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

1 sub URI_encoder_Simple { 2 my $datos = $_[0]; 3 $datos =~ s/([^A-Za-z0-9])/sprintf(" % % %02X", ord($1))/seg; 4 return $datos; 5 }

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Extraccin de datos, automatizacin y herramientas

Automatizacin y algoritmos
Casos de uso

Adaptacin de la misma subrutina a la tcnica Double Encoding para explotar defectos en IIS 4.x realmente es solo adicionar el formato adicional
1 sub URI_encoder_DoubleEncoding { 2 my $datos = $_[0]; 3 $datos =~ s/([^A-Za-z0-9])/sprintf(" % %25 %02X", ord($1))/seg; 4 return $datos; 5 }

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

Introduccin a la temtica

Introduccin a las inyecciones SQL

Preguntas y cierre

Preguntas?

Artur L. Pinto Monteiro Inyecciones SQL

NextVision Ibrica

También podría gustarte