Este documento describe cómo explotar una vulnerabilidad de inyección SQL en un sitio web que usa el método POST para enviar datos del formulario de inicio de sesión. Explica cómo probar bypasses como ' or '1'='1 para identificar errores que indiquen una vulnerabilidad, y cómo usar la herramienta sqlmap para auditar automáticamente el sitio y determinar los parámetros vulnerables. Finalmente, muestra cómo esta herramienta puede usarse para extraer la base de datos completa del sitio.
Introduction to Web Application Penetration TestingNetsparker
These slides give an introduction to all the different things and stages that make a complete web application penetration test. It starts from the very basics, including how to define a Scope of Engagement.
These slides are part of the course Introduction to Web Application Security and Penetration Testing with Netsparker, which can be found here: https://www.netsparker.com/blog/web-security/introduction-web-application-penetration-testing/
Esta presentación se realizo en e Congreso Nacional de Ingeniería Informática en Chimbote. El cual describe como se genera el portafolio de proyectos de seguridad informática mediante una evaluación costo beneficio.
Introduction to Web Application Penetration TestingNetsparker
These slides give an introduction to all the different things and stages that make a complete web application penetration test. It starts from the very basics, including how to define a Scope of Engagement.
These slides are part of the course Introduction to Web Application Security and Penetration Testing with Netsparker, which can be found here: https://www.netsparker.com/blog/web-security/introduction-web-application-penetration-testing/
Esta presentación se realizo en e Congreso Nacional de Ingeniería Informática en Chimbote. El cual describe como se genera el portafolio de proyectos de seguridad informática mediante una evaluación costo beneficio.
Footprinting is a part of reconnaissance process which is used for gathering possible information about a target computer system or network. Footprinting could be both passive and active. Reviewing a company’s website is an example of passive footprinting, whereas attempting to gain access to sensitive information through social engineering is an example of active information gathering.
Footprinting is basically the first step where hacker gathers as much information as possible to find ways to intrude into a target system or at least decide what type of attacks will be more suitable for the target.
Introduction of Ethical Hacking, Life cycle of Hacking, Introduction of Penetration testing, Steps in Penetration Testing, Foot printing Module, Scanning Module, Live Demos on Finding Vulnerabilities a) Bypass Authentication b) Sql Injection c) Cross site Scripting d) File upload Vulnerability (Web Server Hacking) Countermeasures of Securing Web applications
AUDITORIA DE BASE DE DATOS
Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a la informacion almacenada en las bases de datos incluyendo la capacidad de determinar:
Quien accede a los datos.
Cuando se accedió a los datos.
Desde que tipo de dispositivo/aplicación.
Desde que ubicación en la red.
Cual fue la sentencia SQL ejecutada.
Cual fue el afecto del acceso a la base de datos.
La Auditoria de Base de Datos es Importante porque:
Toda la informacion financiera reside en bases de datos y deben existir controles relacionados con el acceso a las mismas.
Se debe poder demostrar la integridad de la informacion.
Las organizaciones deben mitigar los riesgos asociados a la perdida de datos y a la fuga de informacion.
La informacion confidencial de los clientes, son responsabilidad de las organizaciones.
Los datos convertidos en informacion a través de bases de datos.
Las organizaciones deben tomar medidas mucho mas allá de asegurar sus datos.
Mediante la auditoria de bases de datos se evaluara:
Definición de estructuras físicas y lógicas de las bases de datos.
Control de carga y de mantenimiento de las bases de datos.
Integridad de los datos y protección de accesos.
Estándares para análisis y programacion en el uso de bases de datos.
Procedimientos de respaldos y recuperación de datos.
Planificación de la Auditoria de Base de Datos
Identificar todas las bases de datos de la organización.
Clasificar los niveles de riesgo de los datos en las bases de datos.
Analizar los permisos de accesos.
Analizar los controles existentes de acceso a las bases de datos.
Establecer los modelos de auditoria de bases de datos a utilizar.
Establecer las pruebas a realizar para cada base de datos, aplicación y/o usuario.
Metodologías para la auditoria de Base de Datos
Metodología Tradicional
El auditor revisa el entorno con la ayuda de una lista de control (Checklist), que consta de una serie de cuestiones a verificar, registrando los resultados de su investigación. En esta investigación se confecciona una lista de control de todos los aspectos a tener en cuenta.
Metodología de evaluación de riesgos
Este tipo de metodología, conocida también por Risk oriented approach es la que propone la ISACA y empieza fijando los objetivos de control que minimizan los riesgos potenciales a los que esta sometido el entorno.
Considerando los riesgos de:
Dependencia por la concentración de datos.
Accesos no restringidos en la figura del DBA.
Incompatibilidades entre el sistema de seguridad de accesos del SGBD y el general de instalación.
Impactos de los errores en Datos y programas.
Rupturas de enlaces o cadenas por fallos del sofware.
Impactos por accesos no autorizados.
Dependencias de las personas con alto conocimiento técnico.
Se puede definir los siguientes controles:
Objetivo de Control: El SGBD debe preservar la confidencialidad de la BD.
Tecnicas de Control: Se es
Footprinting is a part of reconnaissance process which is used for gathering possible information about a target computer system or network. Footprinting could be both passive and active. Reviewing a company’s website is an example of passive footprinting, whereas attempting to gain access to sensitive information through social engineering is an example of active information gathering.
Footprinting is basically the first step where hacker gathers as much information as possible to find ways to intrude into a target system or at least decide what type of attacks will be more suitable for the target.
Introduction of Ethical Hacking, Life cycle of Hacking, Introduction of Penetration testing, Steps in Penetration Testing, Foot printing Module, Scanning Module, Live Demos on Finding Vulnerabilities a) Bypass Authentication b) Sql Injection c) Cross site Scripting d) File upload Vulnerability (Web Server Hacking) Countermeasures of Securing Web applications
AUDITORIA DE BASE DE DATOS
Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a la informacion almacenada en las bases de datos incluyendo la capacidad de determinar:
Quien accede a los datos.
Cuando se accedió a los datos.
Desde que tipo de dispositivo/aplicación.
Desde que ubicación en la red.
Cual fue la sentencia SQL ejecutada.
Cual fue el afecto del acceso a la base de datos.
La Auditoria de Base de Datos es Importante porque:
Toda la informacion financiera reside en bases de datos y deben existir controles relacionados con el acceso a las mismas.
Se debe poder demostrar la integridad de la informacion.
Las organizaciones deben mitigar los riesgos asociados a la perdida de datos y a la fuga de informacion.
La informacion confidencial de los clientes, son responsabilidad de las organizaciones.
Los datos convertidos en informacion a través de bases de datos.
Las organizaciones deben tomar medidas mucho mas allá de asegurar sus datos.
Mediante la auditoria de bases de datos se evaluara:
Definición de estructuras físicas y lógicas de las bases de datos.
Control de carga y de mantenimiento de las bases de datos.
Integridad de los datos y protección de accesos.
Estándares para análisis y programacion en el uso de bases de datos.
Procedimientos de respaldos y recuperación de datos.
Planificación de la Auditoria de Base de Datos
Identificar todas las bases de datos de la organización.
Clasificar los niveles de riesgo de los datos en las bases de datos.
Analizar los permisos de accesos.
Analizar los controles existentes de acceso a las bases de datos.
Establecer los modelos de auditoria de bases de datos a utilizar.
Establecer las pruebas a realizar para cada base de datos, aplicación y/o usuario.
Metodologías para la auditoria de Base de Datos
Metodología Tradicional
El auditor revisa el entorno con la ayuda de una lista de control (Checklist), que consta de una serie de cuestiones a verificar, registrando los resultados de su investigación. En esta investigación se confecciona una lista de control de todos los aspectos a tener en cuenta.
Metodología de evaluación de riesgos
Este tipo de metodología, conocida también por Risk oriented approach es la que propone la ISACA y empieza fijando los objetivos de control que minimizan los riesgos potenciales a los que esta sometido el entorno.
Considerando los riesgos de:
Dependencia por la concentración de datos.
Accesos no restringidos en la figura del DBA.
Incompatibilidades entre el sistema de seguridad de accesos del SGBD y el general de instalación.
Impactos de los errores en Datos y programas.
Rupturas de enlaces o cadenas por fallos del sofware.
Impactos por accesos no autorizados.
Dependencias de las personas con alto conocimiento técnico.
Se puede definir los siguientes controles:
Objetivo de Control: El SGBD debe preservar la confidencialidad de la BD.
Tecnicas de Control: Se es
Definición de SQL injection 7 y cómo identificar algunas formas de SQL Injection. Así mismo algunos objetos que pueden llevar a que nuestro web site sea vulnerado.
Universidad Técnica Particular de Loja
Ciclo Académico Abril Agosto 2011
Carrera: Gestión Ambiental
Docente: Ing. Antonella González
Ciclo Tercero
Bimestre: Segundo
SQL injection is a code injection technique, used to attack data-driven applications,
in which malicious SQL statements are inserted into an entry field for execution.
This is a method to attack web applications that have a data repository.The
attacker would send a specially crafted SQL statement that is designed to cause
some malicious action.SQL injection is an attack technique that exploits a security
vulnerability occurring in the database layer of an application and a service. This
is most often found within web pages with dynamic content.
5. LA MACROECONOMÍA: UNA VISIÓN GLOBAL
5.1. La macroeconomía: concepto y orígenes
5.2. Los objetivos y los instrumentos de la política macroeconómica
5.3. La medición de la actividad económica
5.3.1. Las macromagnitudes
5.3.2. Tres formas de agregar en la práctica la producción de un país
5.4. Problemas actuales de la macroeconomía
5.4.1. Problemas actuales de la macroeconomía: el crecimiento económico
5.4.2. Problemas actuales de la macroeconomía: la inflación
5.4.3. Problemas actuales de la macroeconomía: el desempleo
Seguridad Base de Datos sql injection v1.0José Moreno
Método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación a nivel de validación de entradas para realizar operaciones sobre una base de datos.
Las cuentas y roles de SQL SERVER tienen un papel fundamental en la seguridad de Windows Server usa estas entidades de SQL Server para controlar el acceso a almacenes y tablas que contienen datos de operaciones de seguimiento, así como datos
de control de estado relacionados con la persistencia de flujo de trabajo.
2. SQL Injection utilizando método POST
En esta entrada breve y simple, se detallaran los pasos que realizaremos
cuando necesitemos explotar una vulnerabilidad de Sql Injection, que
mayormente se encuentran en algunos servidores basados en SQL Server y
Oracle.
3. SQL Injection utilizando método POST
Estas vulnerabilidades son típicas en los LOGIN'S Administrativos, ya que
como debemos de saber, que cuando ingresamos el usuario y password
estos datos se envían a través del método POST, por lo tanto puede existir
la posibilidad de que al ingresar datos falsos o algunos bypasses, esta nos
pueda mostrar algún error que nos permita identificar la vulnerabilidad, por
tanto se puede explotar automatizadamente utilizando SQLMAP
ejecutando comandos para enviar la petición en POST y no en GET como
se "acostumbra".
4. SQL Injection utilizando método POST
Si no me explique bien,
pues al buen entendedor
pocas palabras!!! entonces
sin mas rodeos, vamos a la
acción!
5. SQL Injection utilizando método POST
Tenemos un LOGIN en ASP, en la cual no tenemos los datos correctos ni
nada por el estilo, ya que no hemos encontrado ningún tipo de
vulnerabilidad en el servidor que nos brinde estos datos, por tanto como
somos curiosos e inteligentes empezamos a probar datos falsos y algunos
bypasses como el famoso ' or '1'='1 como se muestra en la imagen
siguiente:
13. SQL Injection utilizando método POST
Nota. Ahora la pagina se ve así cuando se hizo la auditoria de seguridad, después solo
quitaron la entrada UAP. Administrativo posiblemente trataron de corregirla después de las
vulnerabilidades mostradas.
15. SQL Injection utilizando método POST
Después de haber colocado este bypass, tenemos la posibilidad de que el
servidor nos muestre algún tipo de vulnerabilidad o el error que nos permita
identificar si es vulnerable a SQL Injection, tanto así que si el servidor se
encuentra bajo ASP esta nos puede mostrar el error "Microsoft OLE DB
Provider for ODBC Drivers error '80040e14'", si esto llega a suceder,
corremos la suerte de poder explotar esta vulnerabilidad. En este caso
después de haber colocado dicho bypass, el servidor nos devuelve el
siguiente error:
17. SQL Injection utilizando método POST
Aun así como se menciono anteriormente trataron de corregir el error pero
sigue apareciendo el mismo error como se muestra a continuación
19. SQL Injection utilizando método POST
Al visualizar esta vulnerabilidad, somos consciente que se puede explotar
manualmente o automatizadamente, para así obtener los datos que nos
permita logearnos de una manera correcta al servidor.
Ahora, para seguir probando si el LOGIN tiene algún otro tipo de
vulnerabilidad, regresamos al form y dejamos en blanco el usuario y clave
y le damos clic en Conectar, la cual el servidor nos muestra lo siguiente:
21. SQL Injection utilizando método POST
Ahora, para seguir probando si el LOGIN tiene algún otro tipo de
vulnerabilidad, regresamos al form y ahora tecleamos USER en el usuario y
en la clave lo mismo USER y le damos clic en Conectar, la cual el servidor
nos muestra lo siguiente:
24. SQL Injection utilizando método POST
¿Algo raro cierto? ¿Por que? ... Este LOGIN nos demuestra que las
peticiones no están validadas, quiere decir que si colocamos algún
bypass, esta nos muestra una vulnerabilidad, como también si dejamos los
form en blanco y cliqueamos en conectar, esta nos permite saltarnos del
login.
Bien, después de haber llegado a unas pequeñas conclusiones sobre que
el servidor tiene una vulnerabilidad en el login y que las peticiones no están
validadas, procederemos a utilizar el Live HTTP Headers para así ver las
cabeceras del login al momento que cliqueemos en Conectar.
25.
26. SQL Injection utilizando método POST
Hemos obtenido 3 datos muy importantes! las cuales son:
http://www.uap.edu.pe/intranet/logon2.asp
POST /intranet/logon2.asp HTTP/1.1
usuario=&pw=&user=07&B7=++Conectar++
La primera es posiblemente la URL Vulnerable, la segunda nos indica que
la variable es POST y el ultimo, los parámetros que posiblemente son
vulnerables.
27. SQL Injection utilizando método POST
Entonces procederemos a explotar la vulnerabilidad automatizadamente
que se encuentra en el LOGIN, utilizando SQLMAP y ejecutando el siguiente
comando basándonos en los datos obtenidos por el Live HTTP Headers.
./sqlmap.py -u "http://www.uap.edu.pe/intranet/logon2.asp" --
data="usuario=&pw=&user=07&B7=++Conectar++" -p "usuario" --level=5 --
risk=5 --dbs
28. SQL Injection utilizando método POST
Recordemos que el sqlmap se encuentra el la suite del backtraq como se
muestra a continuación
32. SQL Injection utilizando método POST
Después de que la herramienta termine de auditar el servidor, esta
detectara que el parámetro POST "usuario" es vulnerable, tal cual se
muestra en la siguiente imagen:
34. SQL Injection utilizando método POST
A partir de allí, ya sabemos que dicho LOGIN es realmente vulnerable y lo
hemos explotado con total satisfacción obteniendo así toda la base de
datos del servidor.
38. SQL Injection utilizando método POST
Ahora si, con este análisis en la BD obtendremos los respectivos datos
reales para poder logearnos satisfactoriamente en el LOGIN que tanto
deseamos y hacer nuestra fechoría.