elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  SMF 1.1.6 multiples fallas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: SMF 1.1.6 multiples fallas  (Leído 8,162 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
SMF 1.1.6 multiples fallas
« en: 6 Noviembre 2008, 09:00 am »

Simple Machines Forum (SMF) 1.1.6 Code Execution Exploit
http://milw0rm.com/exploits/6993

Simple Machines Forum <= 1.1.6 (LFI) Code Execution Exploit
http://milw0rm.com/exploits/7011

En ambos casos es posible causar la ejecución de códigos o subir directamente una shell como un r57 o un c99 aunque es necesario que el atacante pueda subir archivos adjunto en un post para poder ejecutar cualquiera de estos dos exploits donde uno se trata de un LFI y el otro de paquetes autoinstalables sin la verificación de un sesc.

En el primer exploit aparece lo siguiente:
Citar
$this->url->package = '../attachments/' . $this->url->package;
SMF te devolverá un error ya que filtra si alguien intenta escapar del directorio de paquetes, modificamos por lo siguiente:
Citar
$this->url->package = './../attachments/' . $this->url->package;
Solo verifica que los primeros tres carácteres no sean '../' asi que le anteponemos './' y ya.

También descubrí otro bypass que permite instalar paquetes sin verificar la extension del archivo, ahora dicen 'para que sirve?'... supongamos que nuestro foro objetivo solo deja subir archivos jpg, renombramos el paquete con la shell a *.jpg y listo, luego decimos las palabras mágicas..
http://127.0.0.1/foro/index.php?action=packages;sa=install2;package=... ...test.jpg
dentro de un xsrf ovbio hacia el admin y ya está instalado bypaseando el path antihacking  :P y la extensión del archivo.

Algo muy curioso es que después de tres dias nadie se haya dado cuenta, ni los de simplemachines ya que no hay parche ni post en la sección de bugs ni en ninguna otra comunidad.

No pierdan el tiempo, ya probé con foros amigos y no dejan subir nada  :P
El admin de este foro ya tomó las medidas necesarias para evitar catastrofes  :xD
« Última modificación: 6 Noviembre 2008, 09:05 am por WHK » En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: SMF 1.1.6 multiples fallas
« Respuesta #1 en: 6 Noviembre 2008, 15:48 pm »

" luego decimos las palabras mágicas.. "
jajajajjaja xD
muy bueno man esto
gran aporte x)
En línea

berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.212



Ver Perfil
Re: SMF 1.1.6 multiples fallas
« Respuesta #2 en: 7 Noviembre 2008, 12:17 pm »

Yep, me lo comento sirdarkcat, solo tomo medidas? XDD yo quiero divertirme con el  bug, sdc envianos algunos PoCs y details, a ver si Alex te permite hacer alguna probe y los suscriptors tengan mas details...

-berz3k.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: SMF 1.1.6 multiples fallas
« Respuesta #3 en: 7 Noviembre 2008, 15:52 pm »

Citar
sdc envianos algunos PoCs y details, a ver si Alex te permite hacer alguna probe y los suscriptors tengan mas details...

Los PoCs están en milw0rm y lo unico que debes hacer es ejecutarlos, ambos están en perl, los puse arriba en el primer post.

Lo de explicar ¿creo que se entiende no? auqnue bueno, te lo explicaré..

http://milw0rm.com/exploits/6993:
http://translate.google.cl/translate?u=http%3A%2F%2Fmilw0rm.com%2Fexploits%2F6993&sl=en&tl=es&hl=es&ie=UTF-8

La primera falla consiste en que SMF no te pide la contraseña de administración verificadora , solo necesitas ser admin, si te fijas bién cuando quieres hacer alguna modificación como administrador siempre debes ingrear la contraseña aunque estés logueado a exepción del caso en que quieras instalar un paquete y ahí va la primera falla.

La segunda consiste en que puedes instalar cualquier paquete sin la necesidad de cofirmación ni código de seguridad (el típico sesc) asi que puedes ejecutar un XSRF o sea hacer que el administrador instale el paquete que tu quieras sin que el lo desee, además el paquete no necesariamente puede estar en el directorio /packages.

La tercera falla es que un archivo subido como adjunto no lleva ningún carácter al azar, o sea ese hash que se ponen a los archivos pueden ser descifrables y consiste de la siguiente manera:

Citar
[id]_[name]_[ext][md5([name].[ext])]

La cuarta falla es una falla que ya se conoce de lejos para poder ejecutar un XSRF y es poner una imagen con una url que te redireccione aunque lo veo dificil que se animen a crear un sistema que verifique si la imagen es válida o no.


Con todo esto creo que ya te ha dado un poco la idea de lo que puedes hacer, subes un zip con un paquete que contenga un xml que desempaquete una shell como un c99 o un r57 en un directorio poco común y lo subes al servidor como archivo adjunto, ahora en algunos casos los foros no dejan subir este tipo de archivos pero descubrí que al momento de instalar un paquete el sistema le vale madre que extension tenga asi que le puedes poner *.pg, después calculas la ruta exacta del archio y te creas un post en la sección de reclamos y le mentas la madre al admin  :P pero moderadamente para que no te lo borren sino que te respondan y al ver el tema logueados harán que la imagen [img][/img] los redireccione hacia la instalación del paquete de la siguiente manera:
http://[website]/SMF/index.php?action=packages;sa=install2;package=./../attachaments/[filename]
y listo, la shell ha sido subida y ya puedes darle el susto de tu vida o desmadrarlo.


El segundo PoC http://milw0rm.com/exploits/7011:
http://translate.google.cl/translate?u=http%3A%2F%2Fmilw0rm.com%2Fexploits%2F7011&sl=en&tl=es&hl=es&ie=UTF-8

Se trata de un LFI donde el SMF hace un include con la variable "val" en esta petición:
Citar
/index.php?action=jsoption;sesc=${sid};th=32;var=theme_dir;val=./attachments/avatar_${id}.gif%2500
Solo subes una imagen que contenga instrucciones php y listo, hasta puedes hacerlo desde un archivoa djunto y no desde el avatar como aparece en el exploit, da igual ya que lo que importa es el LFI.


¿Dudas?
En línea

sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: SMF 1.1.6 multiples fallas
« Respuesta #4 en: 7 Noviembre 2008, 16:22 pm »

Si, cabe mencionar que WHK me aviso en cuanto se dio cuenta.

La vulnerabilidad en si no era explotable a menos que tuvieras un rango considerablemente alto (en la configuracion de este foro, en muchos otros probablemente no).. pero bueno, se tomaron medidas de todas formas.

SMF ya esta tomando medidas, no tengo idea de porque no han publicado el parche.

El parche temporal que recomendaria..

Para los LFI, pues.. simplemente no permitan subir archivos a sus usuarios, esto es muy importante, si permiten a cualquier persona subir archivos a su foro estan poniendose en peligro por muchas mas cosas que un LFI.. la regla debe ser jamas permitir subir archivos a sus usuarios.

El codigo se puede arreglar agregando un token contra CSRF  al procesar la peticion, de hecho la vulnerabilidad consiste en eso.. es un ataque de CSRF.. hay de estos muchos en muchos lugares solo es cuestion de buscarlos :P

El segundo que no requiere intervencion del administrador (es otro bug).. aplica la misma contramedida, no dejen subir a sus usuarios archivos!! aun podrian atacarlos con los logs de apache, pero bueno.

http://milw0rm.com/exploits/7011

Abstract: smf permite que modifiques cualquier variable de un tema, (para que pongas colores, o yo que se), y despues asigna a $settings el valor de las configuraciones del tema, por lo que puedes modificar cualquier configuracion de SMF (como el path de un theme).

Asi:

la opcion jsoption manda llamar a la funcion SetJavaScript en Sources/Themes.php

Linea 249 de index.php
Código
  1. 'jsoption' => array('Themes.php', 'SetJavaScript')
Linea 1185 de Sources/Themes.php
Código
  1. function SetJavaScript()

Despues, esta funcion asigna en la tabla themes la variable que le mandaste.

Linea 1205 de Sources/Themes.php
Código
  1. db_query("
  2. REPLACE INTO {$db_prefix}themes
  3. (ID_THEME, ID_MEMBER, variable, value)
  4. VALUES ($settings[theme_id], $ID_MEMBER, SUBSTRING('$_GET[var]', 1, 255), SUBSTRING('" . (is_array($_GET['val']) ? implode(',', $_GET['val']) : $_GET['val']) . "', 1, 65534))", __FILE__, __LINE__);

Despues, lee esa misma informacion de esa misma tabla.

Linea 853 de Sources/Themes.php
Código
  1. $request = db_query("
  2. SELECT ID_THEME, variable, value
  3. FROM {$db_prefix}themes
  4. WHERE variable IN ('name', 'theme_url', 'theme_dir', 'images_url')" . (empty($modSettings['theme_default']) && !allowedTo('admin_forum') ? "
  5. AND ID_THEME IN ('$knownThemes')
  6. AND ID_THEME != 1" : '') . "
  7. AND ID_THEME != 0
  8. LIMIT " . count(explode(',', $modSettings['knownThemes'])) * 8, __FILE__, __LINE__);
Linea 861 de Sources/Themes.php
Código
  1. while ($row = mysql_fetch_assoc($request))

Y la guarda en $context['available_themes'][ID DEL TEMA]

Linea 869 de Sources/Themes.php
Código
  1. $context['available_themes'][$row['ID_THEME']][$row['variable']] = $row['value'];

Despues saca la informacion de cada tema:

Linea 904 de Sources/Themes.php
Código
  1. foreach ($context['available_themes'] as $ID_THEME => $theme_data)

Y asigna a settings el valor de las variables que acabamos de sacar de la base de datos.

Linea 910 de Sources/Themes.php
Código
  1. $settings = $theme_data;

Y al final, incluye un archivo usando un valor en $theme_dir

Linea 914 de Sources/Themes.php
Código
  1. include($settings['theme_dir'] . '/languages/Settings.' . $user_info['language'] . '.php')

Terrible no?

Para arreglar eso, simplemente asignen a settings theme_dir, default_theme_dir y base_theme_dir el valor correcto de forma estatica.. ;)

Puede ser que haya mas vulnerabilidades, pero para eso hay que esperar al parche.

El foro no seria explotable a este ataque, pero... si lo logran hacer de alguna forma porfavor avisenos.

Saludos!!
« Última modificación: 7 Noviembre 2008, 16:28 pm por sirdarckcat » En línea

Eazy

Desconectado Desconectado

Mensajes: 229


Eazy [FM-Team]


Ver Perfil WWW
Re: SMF 1.1.6 multiples fallas
« Respuesta #5 en: 8 Noviembre 2008, 14:58 pm »

Yep, me lo comento sirdarkcat, solo tomo medidas? XDD yo quiero divertirme con el  bug, sdc envianos algunos PoCs y details, a ver si Alex te permite hacer alguna probe y los suscriptors tengan mas details...

-berz3k.


Vamos sirdarckcar :) solo 1 o 2 =D
En línea

[/url]
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: SMF 1.1.6 multiples fallas
« Respuesta #6 en: 8 Noviembre 2008, 20:30 pm »

Citar
Vamos sirdarckcar :) solo 1 o 2 =D
Juaz todavía no se lo que quieren si ya todo está requete explicado  :-\
El exploit en perl solo basta ejecutarlo y darle la url del foro y ya que mas.

si quieres probar ahi tienes foros:
http://www.google.cl/search?hl=es&q=Powered+by+SMF&btnG=Buscar&meta=
Solo busca alguno que te deje subir archivos y ya.
En línea

sirdarckcat
Aspirante a supervillano
Moderador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: SMF 1.1.6 multiples fallas
« Respuesta #7 en: 8 Noviembre 2008, 20:41 pm »

jajaja PoCs ya estan los exploits, los detalles ya los dije, no entiendo que mas quieres.
En línea

Dacan

Desconectado Desconectado

Mensajes: 237



Ver Perfil WWW
Re: SMF 1.1.6 multiples fallas
« Respuesta #8 en: 8 Noviembre 2008, 23:56 pm »

Muy buena informacion ya la pongo en practica si puedo.

Tengo una duda ya no salio en SMF 1.1.7

Edit:


Citar
   Type     Action     Description
1.    Execute Modification    ./index.php    Test successful
2.    Execute Modification    ./SSI.php    Test successful
3.    Execute Modification    ./Sources/Help.php    Test successful
4.    Execute Modification    ./Sources/PackageGet.php    Test successful
5.    Execute Modification    ./Sources/Packages.php    Test successful

6.    Execute Modification    ./Sources/QueryString.php    Test successful
7.    Execute Modification    ./Sources/Subs-Graphics.php    Test successful
8.    Execute Modification    ./Sources/Themes.php    Test successful
9.    Execute Modification    ./Themes/default/Packages.template.php    Test successful

10.    Extract File    ./Packages/.htaccess    

Saludos, Dacan  :D
« Última modificación: 9 Noviembre 2008, 00:12 am por Dacan » En línea

primaterecords

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: SMF 1.1.6 multiples fallas
« Respuesta #9 en: 13 Noviembre 2008, 18:32 pm »

un gusto soy nuevo aqui tengo una pregunta, en mi foro no permito subir nada, pero si las imagenes como avatar para los usuarios, eso tambien afectaria_??? gracias
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Multiples Bucles o Multiples Esperas
.NET (C#, VB.NET, ASP)
DarkMatrix 8 5,545 Último mensaje 5 Septiembre 2011, 23:11 pm
por EddyW
Sonido con fallas tecnicas.
Hardware
Andrea120205 1 2,500 Último mensaje 3 Agosto 2016, 10:25 am
por Orubatosu
Multiples preguntas
ASM
TR NOvato 4 3,635 Último mensaje 26 Marzo 2017, 01:41 am
por TR NOvato
Fallas en PC antigua: motherboard o fuente?
Hardware
Schaiden 0 2,776 Último mensaje 10 Febrero 2018, 00:20 am
por Schaiden
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines