jueves, 11 de noviembre de 2010

SqlBit

Saludos Mundo Libre.

SqlBit es una herramienta tambien Exelente que puede utilizar para ejecutar consultas arbitrarias en una base de datos MySQL y ver los resultados de la explotación de una vulnerabilidad de inyección SQL ciega en la aplicación web que utiliza esa base de datos. Extrae datos poco a poco. SqlBit puede ser descargado y utilizado libremente desde aquí.

http://stormsecurity.wordpress.com/2009/10/08/sqlbit-a-new-blind-sql-injection-exploiter/

Puede ejecutar SqlBit así:

perl sqlbit.pl “arbitrary SQL query”

Ejemplo:

perl sqlbit.pl “SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’ “

Esta aplicación ha sido escrito en Perl para que pueda ejecutar en cualquier lugar que haya un intérprete de Perl (Windows, Linux, etc). Es totalmente personalizable mediante el uso de un config.txt archivo de configuración donde puede configurar muchos parámetros de la petición HTTP. El archivo de configuración se parece a esto:

HTTP_Method=POST
URL=http://www.vulnerabile-site.com/login.php
HTTP_VERSION=HTTP/1.1
Host=www.vulnerabile-site.com
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729) Paros/3.2.13
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=en-us
Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive=300
Proxy-Connection=keep-alive
Referer=http://www.vulnerabile-site.com/index.php
Cookie=PHPSESSID=776a2e7181af170e7d57f51773b9527b
Content-Type=application/x-www-form-urlencoded
Content-Length=21
param: user=j’ and ($SQL$) — ‘
param: password=xxx

Se puede ver que SqlBit requiere un lugar donde se puede poner una consulta SQL válida. Que ya debe probar que esta consulta es ejecutado con éxito. Este lugar debe ser especificado por la cadena de SQL $ $.

Eso es todo acerca de la funcionalidad de SqlBit. Si quieres saber más, aquí está una cierta información básica:

Durante algunos de mis pentests me encontré con vulnerabilidades de inyección SQL ciega. He intentado utilizar algunas herramientas que se suponía que los explotan, pero ninguno de ellos llegó a mis expectativas. Así que decidí escribir mi propia herramienta y aquí está.

Como usted ya sabe, ciego de inyección SQL es cuando usted no puede ver el resultado de una consulta, pero el fichero es ejecutado con éxito en el lado del servidor. Para instace:

httx://www.vulnerable-site.com/view.jsp?page=13′ limit 0 union select 1,2,3 from dual where 1 — ‘

Esto puede ser especificado en el archivo de configuración SqlBit como:

param: page=13′ limit 0 union select 1,2,3 from dual where $SQL$ — ‘

Si la dirección URL anterior produce el mismo resultado que la dirección legítima:

httx://www.vulnerable-site.com/view.jsp?page=13

puede ser que sea porque la página de parámetro no se filtra correctamente y que puede inyectar comandos SQL. Pero no siempre podemos ver la salida de nuestros comandos SQL debido a la lógica de la aplicación interna o por otros motivos.

En este caso podemos usar un ataque de tiempo que se basa en esta consulta MySQL:

SELECCIONE SI (expresión, verdadero, falso)

donde la expresión es una consulta que devuelve verdadero o falso. En el caso de verdad que puede dormir (de referencia) una cierta cantidad de tiempo, mientras que en el caso de falsa volvemos directamente. De esta manera podemos saber si un bit de datos es 0 o 1.

Mediante la automatización de las solicitudes, se pueden extraer datos de la base de datos poco a poco.

Fuente:

http://stormsecurity.wordpress.com/2009/10/08/sqlbit-a-new-blind-sql-injection-exploiter/

Saludos Mundo Libre

No hay comentarios:

Publicar un comentario