HackPR.NET

Hacking y Seguridad => HacK General / Ethical Hacking => Topic started by: Prompt on November 29, 2006, 06:15:50 AM

Title: Inyección SQL
Post by: Prompt on November 29, 2006, 06:15:50 AM
Introducción:

El Structured Query Language ('SQL') es un lenguaje de texto utilizado para interactuar con bases de datos relacionales. La unidad fundamental de ejecución en SQL es la 'consulta', la cual está formada por una colección de sentencias que, básicamente, devuelven un único resultado. Lo que vamos a hacer es preguntarle (literalmente) a la web los nombres de usuario y las contraseñas (que por desgracia está encriptadas   xDD)

Paso 1: Buscando una página vulnerable :

Lo primerísimo que tenemos que hacer es buscar una página web que sea vulnerable a esta inyección para eso usaremos www.google.com.
google es un dios informático lo que no encuentres en Google no lo encontrarás en ningún lugar .

Para buscar una página web vulnerable a inyección SQL buscaremos en google "modules.php?name=search" (sin las comillas).
Esto nos mostrará todas las páginas webs que tengan un módulo de búsqueda en el que insertar la inyección SQL.

Paso 2 : Inyectando xD :

Una vez en el  módulo de búsqueda de una página buscaremos esto:


s%') UNION SELECT 0,user_id,username,user_password,0,0,0,0,0,0 FROM nuke_users/*

Este es el código en SQL que pide los nombres de usuario y contraseñas .
Si la web es vulnerable saldrán varias noticias y al final varias noticias que tienen como título  el hash ( contraseña encriptada en MD5) de  los usuarios.

Paso 3: Desencritando el hash :

Ahora que tenemos el hash de todos los usuarios tendremos que desencriptar el que más nos interese (normalmente el del administrador xD que es el  primer hash que aparece)

Busquemos en google esto para encontrar desencriptadores de hash rápidos: "MD5 decrypter" o "hash decrypter" y saldrán varias webs que tienen un desencriptador de hash rápido por base de datos (no suelen funcionar pero es mejor probar primero en esos)

Si estos no funcionan tendremos que utilizar al maestro crackeador de MD5 xD www.milw0rm.com/cracker , tendremos que esperar a que haya un hueco para desencriptar hash y entonces introducir nuestro hash. Tardará unu rato en desencritarse, entre 30 min hasta 5 horas. Si pasa de ese tiempo normalmente pondrá "notfound" (no encontrado) y ya podemos despedirnos de hackear esa web xD.

espero les sirva :D
Title: Re: Inyección SQL
Post by: freshjive on November 29, 2006, 06:20:37 AM
se puede crackear el hash en linea aki y no es hackear es defacear jeje ;)
http://www.milw0rm.com/cracker/insert.php
Title: Re: Inyección SQL
Post by: porq69 on November 29, 2006, 06:03:31 PM
Aja Inyecciones SQL, lo poco q se de este lenguaje es q intereactivo y la forma q se utiliza para explotarlo es provocando un error en alguna peticion q haga a la Base de Datos atravez de un mal filtrado y en este caso utilizo "modules.php?name=search" los famosos modulos de Php-nuke q traen una gama de errores sobre mal filtrados por eso se le puede inyectar codigos. Ahora todo sistemas gestores de bases de datos (SGBD) se explota diferente, es decir q no necesariamente una inyeccion deve funcional igual para todas las paginas en este caso Php-nuke. Entrando un poco en la inyeccion mostrada "s%') UNION SELECT 0,user_id,username,user_password,0,0,0,0,0,0 FROM nuke_users/*" podemos intelpretarla de la siguiente manera::

s%') <== se utiliza para provocar el error (mal filtrado)

UNION <== utilizado para unir todas las tablas

Select <== Selecciona llos campos

**Podemos ver en la inyeccion q se compone de unos ceros 0,user_id,username,user_password,0,0,0,0,0,0 y lo q sucede es q el valor de cero es Null o nulo lo q quiere decir q podemos saltar los demas campos sin saver su nombre. Tiene un total de 10 campos contando los ceros y tablas "user_id,username,user_password" si sacamos esos campos y le ponemos diez ceros lo q sucede es tirada unos numeros en este caso seria el 2 3 4 <== de hay se saca en q posicion se coloca llos campos q queremos de los diez 0 es decir  0,user_id,username,user_password,0,0,0,0,0,0...

FROM nuke_users <== Selecciona la tabla donde vamos a buscar los campos

/* <== Se utiliza para dividir la inyeccion de la sentencia q utiliza de la pagina para interactuar con la base de datos. En otras palabras se pone para señalar q se termino la inyeccion ^^ (este /* depende de su SGBD)

Bueno esto de las inyecciones es bastante complejo para el q lo ve por primera vez, es muy recomendable aprender este lenguaje de SQL y Php por supuesto. Tambien hay inyecciones avanzadas pero eso lo dejo por q no tengo mucho q aportal solo puede decir q muchas veces se puede saltar protecciones con las inyecciones avanzadas ejemplo::

**Cambiando las peticiones por hexadecimales haciendo una ecuacion...

**Cambiar espacios por /**/ de esta forma saltamos algunas protecciones en el filtrado como la de el espacio %20 q muchas veces no tienen valor o mas bien se lo quitan.

**Y muchas mas

EDITADO: Arregle algunos detalles
Title: Re: Inyección SQL
Post by: Prompt on November 29, 2006, 06:25:32 PM
jujuju y eso que no sabes mucho del tema  :D

creeme que con lo que dijiste aprendi algo mas  :D
Title: Re: Inyección SQL
Post by: the_hacker_666 on November 29, 2006, 09:15:44 PM
y no se puede usar eso mismo en otros tipos de tablas? es decir, otro CMS como por ejemplo SMF?? xD (es un ejemplo)

Habria que cambiar el orden de los datos que se estan requiriendo en la inyeccion, no?
Title: Re: Inyección SQL
Post by: DreaDy (smile_jamaica) on November 29, 2006, 11:30:32 PM
cual es el modulo de busqueda, si navego con firefox, donde lo obtengo ??
Title: Re: Inyección SQL
Post by: freshjive on November 29, 2006, 11:51:42 PM
modules.php?name=Statistics Version PHP-Nuke

modules.php?name=Search Version PHP-Nuke

por mensionar algo
Title: Re: Inyección SQL
Post by: DreaDy (smile_jamaica) on November 30, 2006, 01:03:01 AM
me refiero a como busco eso, donde debo presionar, que debeo hacer para realizar esa busqueda.

de antemano se agradece cualquier ayuda
Title: Re: Inyección SQL
Post by: freshjive on November 30, 2006, 01:13:45 AM
en google man o a ke te refieres???
Title: Re: Inyección SQL
Post by: porq69 on November 30, 2006, 04:13:25 PM
Quote from: -.,.-'TH6'-.,.- on November 29, 2006, 09:15:44 PM
y no se puede usar eso mismo en otros tipos de tablas? es decir, otro CMS como por ejemplo SMF?? xD (es un ejemplo)

Habria que cambiar el orden de los datos que se estan requiriendo en la inyeccion, no?

Todas las paginas estan expuestas a Inyecciones SQL incluyendo foros SMF, lo q sucede es q muchas veces se complica por tener buen filtrado y se hace casi imposible. Pero respondiendo casi toda pagina es vulnerable a Inyecciones SQL  :o
Title: Re: Inyección SQL
Post by: cMr_Newbie on December 04, 2006, 10:47:29 PM
Oye greer, pero como.... yo busqué asi como me dijiste en el google ( o mas bien dicho googlie)...

modules.php?name=search

Puse eso y me salieron varias páginas, en lo cual, mi duda es... ya vez que tu dices que después insertamos el código este:

s%') UNION SELECT 0,user_id,username,user_password,0,0,0,0,0,0 FROM nuke_users/*

Pero mi duda aqui está, eso se lo pongo junto cuando abro la página???, por ejemplo: mira lo que me sale ... por ejemplo me salió una pagina de confederacion federal de trabajo que me  gustó para defacearla y pues al momento de darle para meterme en ella, la url es esta:  http://www.cgt.es/modules.php?name=Search, ¿le inserto junto a eso el otro codigo o como se lo inserto?...

por ejemplo:

http://www.cgt.es/modules.php?name=Searchs%') UNION SELECT 0,user_id,username,user_password,0,0,0,0,0,0 FROM nuke_users/*

asi todo pegado lo tengo que poner o como es que lo tengo que poner???...

le dejo hasta donde dice modules.php?= ( y aqui empieza ya el codigo malicioso o como es que debo de hacerlo).....

Es una duda que tengo, ya que eh visto otros codigos de sql, pero nunka me ha salido bien, ya que soy muy newbie y torpe.,,, espero tu respuesta....
Title: Re: Inyección SQL
Post by: freshjive on December 04, 2006, 10:50:20 PM
te keda asi y no tadas las web son vulnerables a ese tipo de inyeccion se okupa de tiempo eso man

www.webvictima.com/modules.php?name=Search&type=comments&%20%20%20query=&%20%20%20query=loquesea&instory=/**/UNION/**/SELECT/**/0,0,pwd,0,aid/**/FROM/**/nuke_authors

si la web es vulnerable te tiene ke salir algo asi

54as4a74s4a4s5as4as4as  es el hash osea el password del administrador encriptado en md5
admin  aka abajo te dice el nombre del administrador

ya que tienes le pass y todo eso te vas a www.lawebvictima.com/admin.php te logueas y listo happy deface (no recomendado borrar nada)
Title: Re: Inyección SQL
Post by: cMr_Newbie on December 05, 2006, 12:33:40 AM
Ufsssss,... no, estuve intentando y no encontré, intente e intente pero no, parece que es el metodo mas dificil, ya que para que una sea vulnerable, va a estar canijo, y pues nimodo no quería postear abajo de ti FresHjive porque tienes esa imagen de que el usuario de abajo es gay, pero pues ya que puedo hacer   :D , pero gracias por tu ayuda.....
Title: Re: Inyección SQL
Post by: cMr_Newbie on December 09, 2006, 09:08:57 PM
 :D , jeje... FresHJive gracias por tu ayuda brother, pero ya pude,.... ya vez las imágenes que te enseñé... y pues muchas gracias por tu ayuda, igual para todos brothers.....  :) ... ah y eso si... es defacear no hackear... ya que defacear es hacerle los cambios que uno quiera, dependiendo de su imáginación y hackear es nomás entrar, como quien dice, penetrar en el sistema o loguear como admin, pero no configuras nada ...  :D , gracias a todos... gracias FresHJive, cada vez estoy aprendiendo mas  :D , y corrigeme si es que no me equivoqué en lo de defacear y hackear .... jeje.. hasta luego ...
Title: Re: Inyección SQL
Post by: Esquipy on May 21, 2007, 08:33:40 PM
Quote from: freshjive on November 29, 2006, 06:20:37 AM
se puede crackear el hash en linea aki y no es hackear es defacear jeje ;)
http://www.milw0rm.com/cracker/insert.php

Excelente Correccion, esa es la gente que necesitamos en el equipo xD

Salu2
------------Esquipy-----------------