sábado, 14 de mayo de 2016

SQL INJECT TEORIA

  . El lenguaje SQL
Antecedentes
Empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba
SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos.
Es un lenguaje normalizado, estructurado de consultas a bases de datos. Esto quiere decir, que en casi todas las consultas a distintos tipos de bases de datos, esto que quiere decir que si tu utilizas Oracle , Mysql , apache , cualquier base de datos puede ser vulnerable por que utilices otra no significa que no sea vulnerable
El lenguaje Sql se divide en dos categorías : el lenguaje de definición de datos ,data definition language (DDL) y Lenguaje de manipulación de datos ;data manipulation language (DML).

DDL
Las sentencias DDL se utilizan para crear y modificar la estructura de las tablas así como otros objetos de la base de datos.
CREATE - para crear objetos en la base de datos.
ALTER - modifica la estructura de la base de datos.
DROP - borra objetos de la base de datos.
TRUNCATE - elimina todos los registros de la tabla.
Lenguaje de manipulación de datos (DML)
Las sentencias de lenguaje de manipulación de datos (DML) son utilizadas para gestionar datos dentro de los schemas. Algunos ejemplos:
SELECT – selecciona a una base de datos .
INSERT – inserta datos a una base de datos .
UPDATE – permite modificar datos existentes en una base de datos .
DELETE - elimina todos los registros de la tabla.
Operadores y Clausulas de SQL
Cadena o instrucción SQL: expresión que define un comando de SQL, como SELECT, UPDATE o DELETE, e incluye cláusulas como WHERE y ORDER BY. Las instrucciones o cadenas SQL se utilizan en consultas y en funciones de agregado.



OPERADORES DE COMPARACIÓN
Clausulas Sql

And – esto ya lo vimos en el post de google hacking es como una unión que evalua las dos condiciones y verifica si una es cierta
Or –tambien lo vimos en google hacking sirve para definir dos condiciones si una de las dos es TRUE arroja el valor
Not – devuelve un valor contrario a la expresión
 OPERADOR
 < MENOR QUE
 > Mayor que
>= Mayor o igual que
<= Menor o igual que
In Especifica los registros de una base de datos .


ORDER BY
Se utiliza para especificar el criterio de ordenación de la respuesta a la consulta. Por defecto la ordenación es ascendente, aunque se puede especificar un orden descendente. La ordenación se puede establecer sobre el contenido de columnas o sobre expresiones con columnas.
DISTINCT
Omite los registros que contienen datos duplicados en los campos seleccionados. Para ser incluidos en los resultados de la consulta, los valores de cada campo enumerado en la instrucción  SELECT  deben ser únicos.
BETWEEN
Comprueba si un valor está comprendido en un rango de valores.
LIKE
El operador LIKE permite realizar comparaciones con cadenas de caracteres. Se pueden utilizar los siguientes comodines: (*) cualquier cadena de 0 o más caracteres y (_) representa un carácter cualquiera

UNION
Sirve para combinar el resultado de dos consultas juntas.

INFORMATION_SCHEMAS.TABLES:
Devuelve información de una tabla determinada
CONCAT
Concatena los resultados de varios campos diferentes

GROUP_CONCAT:
 devuelve como resultado una cadena de concatenación de un grupo de valores no nulos Char: se utiliza para insertar caracteres de control en cadenas de caracteres.

/*Esto fue un poco de teoría que logre recopilar , en el próximo post haremos la practica de sql inject  */

No hay comentarios:

Publicar un comentario