Vulnerabilidad en tuentrada.com.pe

Visitando la conocida web de venta de entradas me percate de una vulnerabilidad en su buscador, al parecer las palabras que uno busca, lo usa directamente de una variable de la URL (GET). Una vulnerabilidad conocida como XSS.

Esto es muy peligroso, pues permite ingresar comportamiento por la URL, que afecte el comportamiento del sitio. Habamos un ejemplo.

En la url modificamos insertando este codigo:

<script>alert('xss')</script>

mostrando el siguiente resultado:

Tu entrada XSS

Si prueban este codigo, veran que hace una redireccion a otra pagina:

<script>location.href='http://google.com'</script>

Podemos hacer que haga una redireccion a paginas maliciosas, para robar identidad, tarjetas de credito, etc.

Ya esta entre nosotros Mozilla Firefox 17!

Ha unas fue lanzado la version 17 de Mozilla Firefox, con novedades interesantes, bug corregidos y algunas observaciones.

Lo primero a tomar en cuenta es la inclusion de Social API, que hara que se tenga una integracion con facebook de manera muy interesante, podras ver tus notificaciones, solicitud de amistad en una barra de Mozilla Firefox. Asi como una barra de chat al lado derecho.

Para activarlo solo hay que ingresar a este link: https://www.facebook.com/about/messenger-for-firefox estando logueado y activarlo.

Y entre las caracteristicas mas resaltantes podemos mencionar:

  • Bloque por defecto en plugins que no estan actualizados.
  • Modificacion del inspector de paginas para facilitar la modificacion del DOM, y mejores en todo el panel de desarrollo en general.
  • Nuevas funciones en el SVG (FillPaint y StrokePaint)
  • Mapas de Javascript iterables.
  • Iconos mas grandes en la barra de notificacion.
  • Mayor seguridad en los iframes con la implementacion de sandbox.

Para ver a detalle pueden revisar este link: https://developer.mozilla.org/en-US/docs/Firefox_17_for_developers

Desarrollando en Ruby usando RVM

Al momento de desarrollar usando Ruby como lenguaje, surge a veces el incoveniente de trabajar con versiones diferentes a las que se maneja en produccion, para ello existe una solucion, usar RVM (Ruby Version Manager) que permite manejar diferentes versiones de Ruby, asi como mantener distintas “instancias” donde instalar las gemas de manera independiente. Algo muy similar al virtualenv usado en Python. (En otro articulo hablo un poco mas sobre virtualenv)

Instalacion

Lo primero que debemos ver, son los requisitos para poder instalar el paquete, necesitaremos tener git y curl instalado.

pacman -S git curl

Luego procedemos a descargar el paquete mediante curl (notar que estamos instalando la version mas estable de RVM).

curl -L get.rvm.io | bash -s stable

O si queremos descargar solo el script y luego procedemos a instalarlo:

$ curl -L get.rvm.io > rvm-install
$ chmod +x rvm-install
$ ./rvm-install

Luego tenemos que agregarlo al .bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Luego de todo esto, y si hicimos los pasos correctos, ya tenemos hemos instalado correctamente rvm, para verificarlo solo basta con:

$ rvm notes

Y saldran todas las caracteristicas de la instalacion.

Instalacion de Ruby

Hasta ahora solo hemos instalado el rvm pero aun no tenemos Ruby instalado, para ver la lista de enviroments disponibles en rvm usamos el siguiente comando:

$ rvm list known

Ahora procedemos a instalar Ruby

$ rvm install <version_ruby>

Podemos reemplazarlo por cualquier version, por ejemplo:

$ rvm install 1.9.2

Luego usamos la version de Ruby

$ rvm use 1.9.2

Ahora ya tenemos la version deseada de Ruby y podemos usarla:

$ ruby --version

Y podemos instalar otra version, y cambiarlo sin problemas. Toda la configuracion se guarda en carpetas independientes dentro de ~/.rvm.

Gemsets

Ahora que podemos manejar varias versiones de Ruby, tambien necesitamos tener “instancias” separadas para las gemas. Dichas instancias se denominan: Gemsets.

Para crearlo debemos seleccionar la version de Ruby que usaremos y luego ejecutar el comando correspondiente:

$ rvm use <ruby_version>
$ rvm gemset create <gemset_name>

Luego seleccionamos el Gemset a usar:

$ rvm use <ruby_version>@<gemset_name> --default

O tambien podemos crearlo y usarlo directamente:

$ rvm use <ruby_version>@<gemset_name> --create

Una vez seleccionado el Gemset a utilizar, podemos instalar las gemas que necesitemos, y cambiar de Gemset las veces que necesitemos y con la version de Ruby que querramos, manteniendo una independencia de codigo, y permitiendo manejar diferentes versiones para proyectos diferentes.

Bonus Track

Hay algunos comandos utiles de rvm que necesitaremos:

Nombre del Gemset actual

$ rvm gemset name

Lista de todos los Gemset disponibles para la actual version de Ruby

$ rvm gemset list

Lista de todos los Gemset disponibles todas las versiones de Ruby

$ rvm gemset list_all

Actualizando

$ rvm get latest