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.

Categories
Artí­culos

Nuevo año, nuevas expectativas

Empiezo a escribir esta entrada con una ligera sensación de decepción y tristeza...

  • Decepción: porque este año que acaba, a pesar de que aprendí bastante en algunos aspectos, lamentablemente no ha sido como hubiera querido.
  • Tristeza: por toda la carga emotiva que he tenido estos últimos días, espero que esto se me pase en unas cuantas horas, al menos por un momento... aunque leer cosas como la siguiente te hacen sentir un poco mejor:

    A veces la vida te pega en la cabeza con un ladrillo. No pierdas la fé. Estoy convencido que lo único que me mantuvo en pie era el hecho que amo hacer lo que hago. Tienes que encontrar eso que amas; esto aplica en tu trabajo como en tus relaciones amorosas. Una gran parte de tu vida estará enfocada en tu trabajo y la única manera de sentirte realmente satisfecho es creer que lo que haces es un excelente trabajo. La única manera de lograr un excelente trabajo es amando lo que haces. Si no lo encuentras todavía sigue buscando. No te rindas. Como todas las cosas relacionadas al corazón, sabrás exactamente cuando lo encuentres. Y, como en cualquier gran relación se va poniendo mejor y mejor a medida que el tiempo pasa. Así que sigue buscándolo hasta que lo encuentres, no te rindas.

    (…)

    Tu vida tiene un límite, no la malgastes viviendo la de otra persona. No atrapes a ti mismo por un dogma el cual implica vivir con los resultados de los pensamientos de terceros. No dejes que el ruido de las opiniones de otros ahoguen tu voz interna. Y lo más importante: ten el coraje de seguir tu corazón y tu intuición. Ellos de alguna manera saben lo que realmente quieres ser; el resto es secundario.

Para no cometer los mismos errores del 2006, pongo aquí algunas cosas que tengo que realizar el siguiente año (en especial el punto 1):

  1. Conseguir una beca para realizar un master -fuera de Perú- en Ciencias de la Computación.
  2. Reunir la mayor cantidad de dinero posible para solventar los gastos que impliquen la realización del punto 1. Se agradece de antemano si colaboran con lo de Adsense 😀
  3. Intentar realizar mi tesis de grado. Este punto ha sido la piedra en el zapato del 2006, ya que con el trabajo se me ha hecho dificil avanzar algo.
  4. Mejorar en gramática y ortografía.
  5. Publicar entradas en este blog con regular frecuencia.
  6. Convencer a mis amigas(os) y familiares para que inicien un blog.
  7. Abrir un blog personal.

Finalmente, doy las gracias a cada cada uno(a) de ustedes por haber dedicado parte de su valioso tiempo a leer este pequeño blog, espero que podamos seguir intercambiando algunas ideas/opiniones en el futuro.

Que tengan un feliz y productivo año 2007.

Categories
Varios

2da Olimpiada “CD de Oro”

Hace algunos minutos me acabo de enterar de la 2da Olimpiada "CD de Oro", organizado por un instituto tecnológico de Perú. Las áreas de competencia de este concurso están divididas en:

  • Diseño de Páginas Web Estáticas
  • Diseño de Páginas Web Dinámicas
  • Desarrollo de Aplicaciones de Escritorio
  • Desarrollo de Aplicaciones Cliente-Servidor
  • Desarrollo de Aplicaciones para Oficina

Dado que últimamente ando algo corto de dinero :D, me puse a leer las bases del concurso para poder participar en la categoría de Diseño de Páginas Web Dinámicas, y miren uno de los -tantos- errores que encontré:

Diseño de Páginas Web Dinámicas

Una página es dinámica cuando se incluye cualquier efecto especial o funcionalidad y para ello será necesario utilizar otros lenguajes de programación, aparte del HTML, como el PHP, ASP y JavaScript o muchos mas como Ajax,Ruby on Rails; estos permiten responder de manera inteligente a las demandas del navegador y que permiten la automatización de determinadas tareas tediosas e irremediables como pueden ser las actualizaciones, el tratamiento de pedidos de una tienda virtual, etc.

En ese sentido, la página web dinámica es aquélla, cuyo contenido se genera a partir de lo que un usuario introduce en un web o formulario.

Me parece bien que hagan este tipo de concursos, pero los organizadores mínimamente deberían preocuparse en poner cosas coherentes en las bases, lo único que logran con este tipo de errores es desprestigiar el concurso y su institución.

¿O será que hoy 28 cambiaron intencionalmente las bases de ese concurso? Oh wait!

Categories
PostgreSQL

Video sobre PostgreSQL

Gavin Sherry, explica sobre el funcionamiento interno de WAL y otras características que pueden ser de interés para los DBA que trabajen con esta base de datos:

In computer science, write ahead logging (WAL) is a family of techniques for providing atomicity and durability (two of the ACID properties) in database systems.

In a system using WAL, all modifications are written to a log before they are applied to the database. Usually both redo and undo information is stored in the log.

The motivation for WAL is to allow updates of the database to be done in-place. The other obvious way to implement atomic update is with shadow paging, which is not in-place. The main advantage of doing updates in-place is it reduces the need to modify indexes and block lists.

Fuente: http://postgresql.fastware.com/blog/fujitsu_advanced_postgresql_talk_1