Está en la página 1de 10

Averiguar sobre las inyecciones SQL

Antes de hablar de sql inject debemos saber que es sql.

Sql (STRUCTUREC QUERY LANGUAJE)

Lenguaje de consultas estructuradas

SQL es un Lenguaje que permite especifica mediante consultas diversos tipos de operaciones
en un gestor de base de datos.

SQL Injection es una falla en la codificación de una aplicación cualquiera (web o local) que
posibilita por medio de un input cualquiera, la manipulación de una consulta SQL. Esta
manipulación se denomina inyección, por lo que el término de inyección de SQL.

Resumiendo: Es una técnica de ataque basada en la manipulación del código SQL, que es el
lenguaje utilizado para el intercambio de información entre aplicaciones y bases de datos
relacionales.

Es el lenguaje de patrón universal para la manipulación de datos en bases de datos


relacionales a través de los DBMS (Sistema de gestión de bases de datos relacionales). Es un
tipo de ataque donde el “Hacker” puede insertar comandos maliciosos (sql querys) en la base
de datos a través de los campos de formularios o de URL de una aplicación vulnerable,
ambicionando extraer información guardada en la base de datos.

“Piense en SQL Injection como una simple falla lógica, es simplemente una falla que, por dejar
abierta a interpretaciones, ocurren manipulaciones indeseables.”

Inurl Brasil, un grupo de investigación de seguridad, desarrollo de herramientas y activismo


digital, dijo: “La computación es perfecta, pero quien programa los dispositivos y aplicaciones
son menos favorecidos, no ven todas las posibilidades, no se preocupan nada más “el camino
que determiné”, se olvidan que existen siempre muchos otros caminos y que es función del
desarrollador y del probador de software (algo que no existe mucho en las empresas) hacer
todos esos caminos y garantizar que el software se comporte adecuadamente; si no lo hace, un
hacker hará “.

Narrando como se hace una inyección SQL.


Imagínese que usted está viajando y su coche pierde la capacidad de la batería, o sea, ella
muere. ¿Que hacer? Si usted tiene un cargador en el coche puede intentar algo para guardar.
Pero si no lo tiene, hay otros métodos para hacer que la batería funcione, por ejemplo, el
famoso “acoplar”, que es cuando usted conecta su batería en otra que esté en
funcionamiento.

Digamos que usted no posee ese cargador, entonces necesita encontrar otro conductor que
suministre la batería. Usted lo encuentra y hace la siguiente pregunta: “Amigo, necesito una
recarga, ¿le daría?”. ¿El otro conductor no va a entender lo que quieres, correcto?

Esto es porque usted no ha detallado que necesita una recarga en la batería de su coche.
Usted no fue explícito y lo mismo ocurre en la cuestión de SQL: Son varias interpretaciones.
Cuando una consulta normal con entrada de filtro se realiza con una vulnerabilidad, un hacker
puede inyectar un código malicioso en su consulta y manipularla, ya que la dejó abierta a
varias interpretaciones.

Operaciones como:

Crear, modificar, eliminar, añadir información en un gestor de base de datos.

Que es una inyección Sql?

El sql Injection es una vulnerabilidad que permite la inyección de Código Sql mediante la
entrada de datos preveniente del lado del cliente hacia el servidor.

El cual permite alterar el funcionamiento normal del programa y lograr así que se ejecute el
código inyectado

Que se puede hacer?

- Consultar.
- Eliminar.
- Modificar.
- Añadir.

Información en una base de datos.

Historial del SQL Injection

La vulnerabilidad SQL injection fue probablemente documentada por primera vez en


1998 por Jeff Forristal. La cual afectaba a Microsoft SQL Server.

Owasp Top 10 2003 – Sexta Vulnerabilidad mas común

Owasp Top 10 2007 – Segunda Vulnerabilidad más común

Owasp Top 10 2010 – Primera Vulnerabilidad más común

Owasp Top 10 2013 – Primera Vulnerabilidad más común


Owasp Top 10 2016 – Primera Vulnerabilidad más común

Tipos de inyecciones SQL

Inyecciones Sql in-Band (SQL Injection Clasico):

- Inyection SQL Basado en Error (Error-Based)


- Inyection SQL Basado en Uniones (Union-Based)

Inyecciones SQL Inferencial (Blind SQL Inject8ion):

- Inyecciones SQL Basado en Booleanos (Boolean- Based)


- Inyecciones SQL Basado en Tiempo (Time-Based)

Inyecciones SQL Out-Band:

- Envió de peticiones a servidor controlado por atacante

Métodos de Inyeccion

Entrada de valores enteros en el URL.

Entrada de valores de cadena en el URL.

Entrada de datos en formularios

- Entrada de dato Libre


- Dropdown Box

Entrada de datos mediante cabeceras Modificadas

- Cookies
- User-Agent

Todo sobre SQL ijection

Identificado SQL Injection & Uso de Dorks

Trabajaremos en dos ambientes controlados


Y el otro
SQL Query SELECT 8FROM user WHERE name=’hary’

Esto pasa cuando se aumenta una comilla simple

Identifica que son suceptibles en sql Blind


Da informe, de que es subseptible por lo tanto existe en la base
de datos
LOGIN FORM BYPASS -SQL INJECTION

Son sentencias que se cumple y que admite comillas simples y generan un error
Ya paso el Loguin con una sentencia lógica

DETECTAR EL GESTOR DE LA BASE DE DATOS

Con la herramienta nmap me puede escanear que servidor me esta corriendo y escuche que
puertos están corriendo.
Concatenacion

GESTOR a'||'b' a'+'b' concat('a','b')


Oracle 'ab' ERROR 'ab'
PosgreSQL 'ab' ERROR ERROR
MySQL 0 'ab' 'ab'
SQL Server ERROR 'ab' ERROR

DETECTAR NUMERO DE COLUMNAS CON ENTEROS – SQL INJECTION

DETECTAR NUMERO DE COLUMNAS CON CADENAS – SQL INJECTION\

SQL Query: SELECT *FROM user WHERE id user= 0 LIMIT 1

192.168.1.67/bricks/content-2/index.php?user=hary

192.168.1.67/bricks/content-2/index.php?user=%27

También podría gustarte