esto mismo no estaba en las otras versiones ?
me precio leer algo asi.. o lei cualkiera... jajajja
Si, o sea era similar, se explotaba diferente pero al final el punto en que el avatar podía contener código malicioso seguía sin ser solucionado.
Aprovechando este post quiero exponer un par de bugs para smf 1.1.9:
1. Bug en el módulo de encuestas.
Si te fijas en el código fuente Sources/Pool.php Linea 164 a 166 podrás ver
foreach ($_REQUEST['options'] as $id)
{
$id = (int) $id;
A veces no puedes votar tranquilo porque te deniegan la visualización de los resultados si no votas primero asi que hacemos un bypass sabiendo que la variable es numérica pero en ningún lado especifica que no podamos ingresar valores negativos, le insertamos el valor "-1" y cuando le damos en votar nos aparecerán los resultados sin que nuestro voto afecte la encuesta.
Esto no es una vulnerabilidad grave, solo es un bug ya que no debería funcionar de esa forma.
2. El segundo bug está en el componente Sources/Sub-Auth.php linea 459 donde la query hacia la base de datos para ir buscando miembros puede ser de valores extremos haciendo que la memoria colapse o se detenga cuando llegue al limite estipulado en la configuración del php.ini.
Por ejemplo vamos a el perfil -> configuración de mensajes privados y le haces click donde dice buscar usuarios (esta opción está en varias secciones del perfil), se abrirá una pequeña ventana hacia:
http://foro.sitio/index.php?action=findmember;sesc=[hash]
donde dice buscar usuarios fijate que nos da un comodín asterisco asi que vamos a lo mas lógico con una mentalidad psicópata y le ponemos asterisco.. al darle buscar simplemente colapsará, nos dará error de php o reaccionará dependiendo de la forma de mostrar errores que esté configurado en el script o php.ini.
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 86 bytes) in /home/vart001/public_html/foro/Sources/Subs-Auth.php on line 468
Haciendo unas pocas peticiones GET seguidas podrías hacer colapsar al servidor completo dejandolo sin recursos de memoria.
3. SMF no tiene control sobre la cantidad de noticias RSS desplegados en pantalla asi que puedes solicitar con toda confianza unos 999 post y te los comenzará a dar. Al igual que en el caso anterior solo basta hacer unas pocas peticiones seguidas de esta forma para que el servidor MySQL le deniegue el acceso a php debido a que sobrepasa el limite de memoria utilizado quedando el foro off.
Prueba:
http://foro.web/index.php?action=.xml;sa=news;board=34;limit=999;type=rssFatal error: Maximum execution time of 30 seconds exceeded in /home/vart001/public_html/foro/Sources/Load.php(195) : runtime-created function on line 3
4. Información disclosure:
No sirve el estado oculto de un perfil (opción de no mostrar si estás conectado) ya que si miras el perfil de una persona que no está conectada puedes ver que dice
Última vez activo: Hoy a las 07:18
y arriba en el foro dice:
22 Mayo 2009, 07:18
asi que obiamente está conectado y podemos reclamarle el dinero que nos debe ese contacto
, lo normal que debería hacer smf es no mostrar ese dato si se ha activado la casilla de estar invisible.
5. Información disclosure:
Hay una opción que dice no mostrar los post si el visitante no está registrado.. mm... fácil, le ponemos al final action=.xml y verás el foro en formato xml con temas y todo xD por ahi sdc había encontrado una forma de ver el perfil en formato xml asi que talves puedas enviar esa acción sin utilizar la variable action y ver otras secciones de la misma forma.
6. El csrf que publiqué hace bastante todavía sigue en pié, donde el usuario puede poner en su firma una imagen con el enlace hacia el colapso de todos los foros y cuando veas un post de ese atacante despues verás todos los foros colapsados.
Ejemplo:
mira la portada del foro ahora.
Nada les cuesta agregar un token sesc a la función.
No se si en este foro le pusieron un parche pero por lo menos oficialmente sigue así