Se
ha anunciado una vulnerabilidad en LiveZilla que podría permitir a un atacante
lograr ejecutar código arbitrario en los sistemas afectados.
LiveZilla es una solución online,
que puede formar parte de cualquier web para dotarla de un sistema de chat,
principalmente orientada al soporte técnico 'Help Desk'. Según los investigadores que han reportado la
vulnerabilidad 'Curesec Research Team',
LiveZilla estaría presente en un millón y medio de webs.
Este fallo fue reportado a
LiveZilla por los investigadores el pasado 10 de Octubre y afecta a la versión
5.0.1.
La vulnerabilidad tiene asignada
el CVE 'CVE-2013-6225' y podría permitir la ejecución de código remoto a través
del fichero 'mobile/php/translation/index.php'.
$langFileLocation
= ‘.’;
$LZLANG
= Array();
if
(isset($_GET['g_language'])) {
$language
= ($_GET['g_language'] != ”) ? $_GET['g_language'] : ‘ein’;
require
($langFileLocation . ‘/langmobileorig.php’);
$LZLANGEN
= $LZLANG;
if
(file_exists($langFileLocation . ‘/langmobile’ . $language . ‘.php’)) {
require
($langFileLocation . ‘/langmobile’ . $language . ‘.php’); <— eeeek it is a bug
}
El problema reside en que la
variable $_GET['g_language'] no está correctamente validada, y podría ser
especialmente manipulada pudiendo permitir la ejecución de código arbitrario.
La versión 5.1.0.0 que soluciona
esta vulnerabilidad puede ser descargada desde: https://www.livezilla.net/downloads/pubfiles/LiveZilla_5.1.0.0_Full.exe
Más información:
Remote Code Execution in LiveZilla
Laboratorio Hispasec

require ($langFileLocation . ‘/langmobile’ . $language . ‘.php’);
ResponderEliminarCon esto lo que se me ocurre es la posibilidad de incluir un fichero que en un principio no está pensado que se incluya, escalando directorios pero ¿ejecución de código?
require ($langFileLocation . ‘/langmobile’ . ¿ifconfig? . ‘.php’);
Está condicionado. La instalación de PHP debe permitir ataques de byte nulo o Null Byte Poison attack. Esto solo se da en instalaciones antiguas de PHP (las hay y muchas). Con este ataque haces que PHP "se coma" la extensión. Con esto ya puedes inyectar cualquier archivo local con cualquier o ninguna extensión (con permisos adecuados). Luego, haces uso de archivos donde puedas dejar rastro. Tal y como dice en el enlace del artículo, puedes escribir lo que quieras en Linux /proc/pid/environ o en Windows accediendo al registro de Apache. En ambos el truco está en meter código PHP en el User-Agent del navegador.
Eliminar