Caso Multidimensional
Enviado por da2rodri • 8 de Junio de 2014 • 789 Palabras (4 Páginas) • 195 Visitas
Recordad que el objetivo de las técnicas de Blind SQL Injection es conseguir
inyectar lógica binaria con consultas del tipo “y existe esta tabla” o “y el valor
ASCII de la cuarta letra del nombre del administrador es menor que 100”.
Siempre se busca realizar consultas que devuelvan verdad o mentira, con lo
que la aplicación al procesarlo devolvería la página original (que llamamos de
verdad o cierta) o la página cambiada (que llamamos de mentira o falsa).
Para probar si el parámetro es susceptible a Blind SQL Injection, utiliza un
sistema basado en inyecciones de código de cambio de comportamiento cero
sumando y restando el mismo valor. Es decir, si tenemos un parámetro vulneCC-
BY-NC-ND • PID_00191663 20 Ataques a BB. DD., SQL Injection
rable que recibe el valor 100, el programa ejecuta la petición con 100 + valor –
valor. Si el resultado es el mismo, entonces el parámetro es susceptible a ataques
de SQL Injection.
Como utiliza búsqueda de palabra clave en resultados positivos, hay que ofrecerle
la palabra clave manualmente, es decir, hay que lanzar la consulta normal
y ver qué palabras devuelve el código HTML. Después tenemos que lanzar
una consulta con algo que haga que sea falso, por ejemplo, con AND 1=0 y ver
qué palabras aparecen en los resultados de verdad y no aparecen en los falsos
(con seleccionar una palabra valdría). El código fuente de esta aplicación está
escrito en Lenguaje C, es público y se puede descargar de la web.
Para ejecutarse se hace con un comando como el siguiente:
C:\>sqlinjector -t www.ejemplo.com -p 80 -f request.txt -a query -o where -qf
query.txt -gc 200 -ec 200 -k 152 -gt Science -s mssql
Donde:
• t: Es el servidor
• p: Es el puerto
• f: La aplicación vulnerable y el parámetro. En un fichero de texto.
• a: La acción a realizar
• o: Fichero de salida
• qf: La consulta a ejecutar a ciegas. En un fichero de texto.
• gc: Código devuelto por el servidor cuando es un valor correcto
• ec: Código devuelto por el servidor cuando se produce un error
• k: Valor de referencia correcto en el parámetro vulnerable
• gt: Palabra clave en resultado positivo
• s: Tipo de base de datos. La herramienta está preparada para MySQL, Oracle,
Microsoft SQL Server, Informix, IBM DB2, Sybase y Access.
Ejemplo de fichero request.txt
GET /news.asp?ID=#!# HTTP/1.1
Host: www.ejemplo.com
Ejemplo de query.txt:
select @@version
La aplicación anterior hay que nombrarla obligatoriamente cuando se habla
de técnicas de Blind SQL Injection, pero hoy en día existen otras muchas alternativas.
Una especialmente pensada para motores de MySQL es SQLbftools.
CC-BY-NC-ND • PID_00191663 21 Ataques a BB. DD., SQL Injection
2.4.3.
...