AutorZerial

XSS en el sitio web de FeriaTicket y FeriaMix

FeriaTicket se dedica a la venta de tickets/entradas de eventos de todo tipo y FeriaMix vende libros y música, mediante el registro de usuario es posible realizar compras en línea en ambas tiendas. Ambos sitios web, pertenecientes a la misma empresa, están desarrollados por la misma empresa usando el mismo sistema web (framework, cms o como quieran llamarlo) y así mismo, comparten los mismos bugs y vulnerabilidades.

La vulnerabilidad en común corresponde a una del tipo Cross-Site Scripting (XSS) al no validar los parametros de la URL, permitiendo la inyección de código html o javascript arbitrario.
Especificamente, se encuentra en el script wspd_cgi.sh al no validar el valor que se le entrega a la variable wspd_cgi.sh.

wspd_cgi.sh/WService=<código malicioso>

No está demas decir que la vulnerabilidad permite redireccionar a un sitio distinto al de FeriaTicket o FeriaMix, pudiendo robar las cookies y suplantar la identidad de los clientes, accediendo a información privada. A pesar de lo que la empresa declara en su página relacionada con la privacidad y la seguridad:

Compromiso con la Seguridad
En relación a nuestro sitio web (www.feriamix.cl), Empresas Feria hace esta declaración de seguridad y privacidad en orden a demostrar y comunicar su compromiso con una práctica de negocios de alto nivel ético y dotada de los controles internos apropiados.

Protección de Datos
Nuestro sitio está protegido con una amplia variedad de medidas de seguridad, tales como procedimientos de control de cambios, passwords y controles de acceso fí­sico. También empleamos otros mecanismos para asegurar que los datos que nos proporcionas no sean extraviados, mal utilizados o modificados inapropiadamente. Esos controles incluyen polí­ticas de confidencialidad y respaldo periódico de bases de datos.

Puedo asegurar que no están cumpliendo con lo que dicen.

Seguir leyendo

Esteganografía: Ofuscación de archivos (parte 3)

Luego de haber presentado la primera y segunda parte de este post, les presentaré un script que automatiza el proceso de “esconder” y “encontrar” el archivo y además mostrar como podemos solucionar el problema de los “bytes” para poder separar el archivo original. Es un simple script en bash, que usa los mismos comandos y técnicas mostradas en los post anteriores, con comandos basicos como cat, split, etc. Para “marcar” la división entre el archivo oculto dentro del archivo original lo haremos de una forma bien simple.

Marcar la división entre los archivos

Para saber exactamente el byte donde debemos cortar con split el archivo para poder separarlo, vamos a agregar, al final de nuestro archivo ofuscado, una linea en texto plano con un numero X = bytes. Puede sonar absurdo por lo simple que es, pero es posible.

Seguir leyendo

Esteganografía: Ofuscación de archivos (parte 2)

Luego de haber enseñado como ofuscar un archivo dentro de otro, llegó el momento de saber como “separarlos”. En la primera parte, hubo comentarios de quienes tenian problemas porque se corrompía el archivo y no todas las versiones de unrar o unzip lo podían descomprimir, ya que obviamente, el archivo tiene muchos bits y bytes extras que no corresponden al zip, al rar o al archivo que escondimos. Una vez separado el archivo que hemos escondido, evitaremos todos estos problemas y tendremos nuestro archivo íntegro.

Para separar el archivo vamos a usar el comando split, que nos permite “dividir” o “cortar” un archivo por líneas, bytes, etc. En este caso, separaremos por bytes el archivo.
La sintaxis de split para separar un archivo es tan simple como:

$ split --bytes=XXX archivo
o tambien
$ split -b XXX archivo

De esta forma, el split separará el archivo cada XXX bytes, creando archivos de la forma xab, xac, xad, … xaN.
Ejemplo:
[zerial@balcebu ejemplo_split]$ du -sh archivo.jpg
48K archivo.jpg
[zerial@balcebu ejemplo_split]$ split -b 10000 archivo.jpg
[zerial@balcebu ejemplo_split]$ ls
archivo.jpg xaa xab xac xad xae
[zerial@balcebu ejemplo_split]$ du -csh *
48K archivo.jpg
12K xaa
12K xab
12K xac
12K xad
8.0K xae
104K total
[zerial@balcebu ejemplo_split]$

Para poder separar el archivo ofuscado, vamos a necesitar saber de antemano el tamaño del archivo original, para poder separarlo por esa cantidad de bytes.

Seguir leyendo

Jornadas Regionales del Software Libre 2010 en San Luis (.ar)

Hace dos semanas asistí y participé de las Jornadas Regionales del Software Libre (JRSL) en San Luis, Argentina. Fue una experiencia muy buena, estuve con gente que ya había conocido antes en otros eventos allá en Argentina y en Chile. A este evento asistió gente de Uruguay, Chile, EE.UU y obviamente Argentina. Una amplia variedad de charlas y talleres de muy buena calidad.
En esta oportunidad asistí como charlista/expositor y como asistente a otras charlas como criptografía, la típica charla sobre redes mesh, python/web2py, entre otras. Debido a que el publico no era muy “técnico” y el enfoque del evento no es algo netamente de seguridad, sino de difusión y de filosofía del SL, mi charla fue muy justa, 35 o 40 minutos que pasaron muy rapido, mostrando scripts y técnicas para apoderarse de los WordPress de un servidor, hacer peticiones automaticas para la extracción de información de sitios los cuales no protegen los datos de sus usuarios, etc.

XSS En todos los sitios de Google

Hasta los más grandes tienen sus errores y vulnerabilidades más estúpidas. Ahora es el turno de Google, aunque ya corrigieron el problema, me gustaria darlo a conocer.

El problema lo corrigieron (parcialmente) casi 30 minutos luego de haberlo reportado, sin embargo, la gente del Google Security Team, me comentaron que ya lo habían reportado. Sin embargo, lo habían corregido parcialmente, ya que aún existían sitios que tenian el problema. Por ejemplo, corrigieron el problema en docs.google.com, www.google.com y en mail.google.com, pero en labs.google.com, code.google.com y otros seguía existiendo. Cuando me dijeron que ya lo habían corregido, les reporté que la vulnerabilidad continuaba en algunos sitios, y luego de esto lo corrigieron.

Hasta la fecha, al parecer ya están todos los subdominios corregidos.

Seguir leyendo

Esteganografía: Ofuscación de archivos (parte 1)

Entendamos como “ofuscación de archivos” el hecho de esconder un archivo dentro de otro. Es posible, usando comandos básicos de Unix, ofuscar un archivo y que pase desapercibido. En esta etapa solo usaremos el comando para concatenar archivos cat.

Teóricamente, lo que haremos será concatenar dos tipos de archivos, en este caso un archivo de imagen junto con un zip o un rar. Si ponemos nuestro fichero comprimido al final de un archivo de imagen, podremos ver la imagen sin problemas y poder debajo tener nuestro archivo ofuscado. Hice algunas pruebas en M$ Windows con distintos antivirus enviando el archivo por correo electrónico y descargandolo, sin que se detectara el archivo ofuscado.

El comando es ultra sencillo, lo único que haremos sera concatenar dos (o más) archivos al final de nuestro fichero de imágen. Tenemos una nuestra imagen “imagen.jpg” y nuestro zip “archivo.zip“:

$ cat imgen.jpg archivo.zip >archivo_ofuscado.jpg

Ahora “archivo_ofuscado.jpg” tiene un tamaño igual a la suma de imagen.jpg con archivo.zip.

Seguir leyendo