Iloo

https://iloo.wordpress.com

Archivos mensuales: julio 2010

Latex: formas de escribir la letra ñ

Existen varias maneras de escribir esta letra (medio rara) en Latex, ahora la forma correcta es… pues la que funcione…

Vayamos por el inicio, definiendo el idioma, y la codificación:

\usepackage[spanish, activeacute]{babel} %Definir idioma español
\usepackage[utf8]{inputenc} %Codificacion utf-8

El termino activeacute sirve para poder utilizar el signo ” ” (ojo, no es un acento es la comilla simple). También se puede usar la codificación iso-8889-1, reemplazando a la utf-8:

%\usepackage[latin1]{inputenc} %Codificacion iso-8889-1

Ahora las maneras de escribir la ñ:

  1. ñ
  2. ‘n (ojo que es comilla simple)
  3. ~n
  4. \~n
  5. \~{n}

En últimas versiones ya no funciona la opción 3 (que era una de las que más se usaba) ahora fue reemplazada por la opción 2 (siempre y cuando activeacute este definido), si no se define activeacute se puede usar la forma 4 o la 5.

jsp: instalando componentes necesarios

Ya había trabajado con jsp en entorno windows, pero ahora con la migración a GNU/Linux, más propiamente Ubuntu 10.04, voy a mostrar un pequeño manual de como preparar e instalar lo que se necesita para trabajar con jsp:

  • Servidor tomcat
  • IDE: en este caso Netbeans 6.9
  • Java Development Kit (JDK): en este caso sun-java, aunque se puede trabajar con openjdk.

Empecemos entonces:

1. Instalar el jdk, en consola escribimos:

sudo aptitude install sun-java6-jdk

2. Instalar tomcat, igualmente en consola:

sudo aptitude install tomcat6

3. Instalar el administrador para tomcat6:

sudo aptitude install tomcat6-admin

4. Un paso extra es instalar algunos ejemplos:

sudo aptitude install tomcat6-examples

5. La configuración:

5.1. Tomcat: en consola:

sudo gedit /etc/default/tomcat6

Donde vemos la siguiente línea de código:

JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk

La reemplazamos con

JAVA_HOME=/usr/lib/jvm/java-6-sun

Ya que estamos usando el jdk de sun, si fuera el openkdj entonces dejamos esto como estaba.

5.2. Añadir administrador:

Existen dos maneras de hacerlo, para ser más específico en dos archivos:

La primera, en consola:

sudo gedit /usr/share/tomcat6/conf/tomcat-users.xml

La segundo, igualmente en consola:

sudo gedit /etc/tomcat6/tomcat-users.xml

La verdad de las dos maneras funciona igual, la diferencia esta en los permisos del segundo archivo, ya que solo puede ser leído por el usuario root (claro que esto se puede cambiar).

Ya sea abriendo el primer o segundo archivo el contenido es el mismo, entonces solo queda agregar el administrador, esto se hace añadiendo una línea de código entre los tags <tomcat-users> y </tomcat-users>, este sería un ejemplo de como tendría que ser la línea de código:

<user username=”nombre_administrador” password=”mi_password”  roles=”admin,manager” />

6. Levantar el servicio, en consola:

sudo /etc/init.d/tomcat6 start

o si ya estuviera levantado:

sudo /etc/init.d/tomcat6 restart

Si todo estuvo bien podemos ver lo siguiente yendo a la dirección local, es necesario aclarar que tomcat6 ocupa el puerto 8080, entonces en el browser:

http://localhost:8080

Y para el administrador:

http://localhost:8080/host-manager/html

Y los ejemplos:

http://localhost:8080/examples/

7. Para descargar el ide netbeans 6.9 nos dirigimos a:

http://netbeans.org/downloads/index.html

8. Una vez descargado el archivo, es necesario darle permisos de ejecución, en consola:

sudo chmod +x netbeans-6.9-ml-linux.sh

9. Instalar Netbeans, nuevamente en consola:

./netbeans-6.9-ml-linux.sh

Los pasos para la instalación de Netbeans son sencillos y no creo que sea necesario mostrarlos, cosas como la ruta de instalación, componentes, etc, etc.

Si todo salio correctamente ya podremos empezar con jsp, crear un archivo vacío y ejecutarlo.

10. En Netbeans nos vamos al menú File->New Project->Java Web->Web Application

Luego en clic en el botón Next, seguidamente será necesario insertar el nombre del proyecto:

Nuevamente clic en el botón Next, en la ventana siguiente mantenemos todos los datos como están, servidor tomcat y la versión de java

Luego clic en el botón Finish y ejecutamos la nueva aplicación con la tecla F6, si no nos abre la aplicación entonces nos vamos en el browser a la ruta de la aplicación (el nombre que se le dio al proyecto que en este caso fue WebApplication1):

http://localhost:8080/WebApplication1/

Axel: gestor de descargas ligero

Siempre estuve acostumbrado a usar el famoso wget para realizar la descarga de archivos, y como siempre pasa en entornos Gnu/Linux hay varias alternativas para realizar la misma tarea, es por esto que empecé a buscar algo parecido a wget, hasta que dí con Axel.

De la descripción de synatic:

Axel intenta acelerar el proceso de descarga usando conexiones múltiples para un solo archivo. También puede usar múltiples servidores de réplica para una descarga. Axel intenta ser lo más ligero posible (25-30k enformato binario), para que pueda ser útil como clon de wget en sistemas donde el tamaño es crítico.

Luego de usarlo uno se queda contento, ya que se nota que la velocidad es un poco mejor a la de wget, la visualización de igual manera, aunque sea en la consola te da una mejor vista del progreso de la descarga.

Para  instalarlo, desde consola claro:

sudo aptitude install axel

Y para usarlo, igualmente por consola:

axel archivo

O si se tiene varios orígenes del archivo:

axel archivo url1 url2

Web Applications Security: www.coteor.net.bo (1)

Este post no es tanto una prueba de seguridad más bien la notificación de un bug de seguridad bueno uno enorme, inicialmente intente comunicar de esto a la empresa, pero no encuentro ningún correo de contacto en su sitio (o_O), ni tampoco en la guía telefónica y eso que esta empresa brinda el servicio de Internet, telefonía, cable, etc, bueno ya lo dice su nombre Cooperativa de Telecomunicaciones Oruro (www.coteor.net.bo).

Pero vayamos al grano el bug o agujero de seguridad se encuentra en la aplicación para el seguimiento de horas en el servicio dial-up (si, la empresa ofrece servicio dial-up, y a precios demasiado altos y ni siquiera cuenta con un plan ilimitado), la aplicación encargada del registro se llama Orion (o al menos eso supongo) desarrollada por la empresa Solintec (cosa que también supongo, por el nombre de la dirección y los banner’s) y se encuentra en http://orion.coteor.net.bo/orion/usuarios/

La cosa es que esta aplicación genera logs en una dirección que cualquier persona tiene acceso, estos log’s se generan cada hora durante todo el día, y almacenan información delicada de las cuentas (nombre de usuario y contraseña a demás que no están codificadas ni cifradas) también información de la persona que se conecta (línea telefónica, fecha y hora).

Se puede apreciar todo esto en la imagen anterior (ojo que los datos ya no sirven ya que todos son de las tarjetas prepago del mes de enero, tal vez alguien pueda hacer un generador de cuentas y contraseñas XD)

Ya con estos datos y un programa para ocultar o cambiar el id telefónico uno ya podría empezar a usar la cuenta de acceso a internet de otro usuario (aunque sea dial-up).

Algunos datos interesantes que se pueden encontrar (a parte de los datos de acceso) son:

  • Cuentas de administrador, obvios: admin y administrador con sus respectivas contraseñas.
  • También para las personas que tienen contratado un plan estos datos son los mismos que se usan para acceder las cuentas de correo electrónico.
  • Siempre hay personas despistadas que ingresan sus datos de otros correos por ejemplo: hotmail, yahoo, gmail cosa que no ingresa ya que es otro servidor de correo pero estos datos son almacenados por la aplicación y guardados en los archivos log’s.

La recomendación es clara, arreglar el bug de la aplicación ya que los datos (privados) de toda una ciudad son visibles a cualquier persona que de con la dirección donde se almacenan estos datos.

Web Applications Security: www.fps.gov.bo (3)

Ya vamos con la última parte del análisis a este portal (podrían haber muchas partes más), ahora vayamos por el “administrador” de la página, generalmente esta parte se encuentra en:

  • /admin.
  • /adm.
  • /administrador.
  • /administrator.
  • wp-admin (XD).
  • O alguno parecido a los anteriores.

De esta manera nos encontramos con:

http://fps.gov.bo/admin/

Probando un poco descubrimos graves fallos de seguridad en el login (SQL injection), básicamente este, sigue el siguiente camino lógico:

si es_correcto(usuario) && es_correcto(contraseña) entonces ingresar();
si es_correcto(usuario) && no_es_correcto(contraseña) entonces mostrar “El password no es correcto”
si no_es_correcto(usuario) && es_correcto(contraseña) entonces mostrar “El nombre de usuario no existe”

Estos mensajes nos dan pautas para realizar pruebas efectivas de acceso a la sección de administración, si inicialmente ingresamos cualquier dato al campo de Login obtenemos:

Y si ahora ingresamos en el campo de Login lo siguiente:

cualquiera’ OR ‘1’=’1

Y dejamos en blanco o introducimos un dato cualquiera en el campo de la Contraseña, obtenemos:

Ahora lo siguiente simplemente es realizar inyección SQL para poder tener acceso al sección de administración del portal.

Un punto a parte de la prueba de seguridad, sobre el área de administración: no tiene registro de acceso para poder controlar quien cambia que, cosa muy importante, al parecer lo hicieron demasiado rápido tomando en cuenta lo anterior mencionado, el contar con restricciones o nivel de usuario también es muy importante cosa que aquí no existe.

Recomendación: limpiar los datos  (magic quotes) antes de realizar las consultas, eliminar los dos mensajes y usar simplemente uno, por ejemplo: “los datos ingresados no son correctos”. Contar con un registro (log) para visualizar las conexiones o ingresos sospechosos al área de administración.

Para aclaración se notifico a la institución, mediante correo electrónico (info@fps.gov.bo)  sobre estas vulnerabilidades en su portal.