Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

Archive for the ‘Manuales’ Category

Aprendiendo Ruby desde cero Capitulo I

Posted by fortress On octubre - 25 - 2011

Desde hace días quería escribir este articulo pero por falta de tiempo (cosas del trabajo) no lo había podido hacer. Aclaro que no se trata de una guía oficial ni nada por el estilo solo es compartir lo poco que he ido aprendiendo sobre este lenguaje y quizás juntos podamos aprender muchísimo mas. Bueno sin mas cháchara aquí vamos.

 

Primero una definición de la wikipedia de que es Ruby?

 

“Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro “Matz” Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python, Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una de software libre.”

 

Algunas características importantes

 

- orientado a objetos.
- Todo es un objeto.
- Bloques.
- cuatro niveles de ámbito de variable: global, clase, instancia y local.
- manejo de excepciones.
- Mark and Sweep Garbage collector.
- expresiones regulares nativas.
- Mucho soporte para comunicación con C, con un agradable API para utilizar Ruby desde C.
- Manejo de multitareas (Threads) independiente del sistema operativo, puedes incluso usar threads en DOS!
- Gran Portabilidad, corre en toda clase de sistemas Linux/Unix, Windows, OS/2, dos, etc…

Para Ruby solo ejecutamos en la terminal y como root

 

# install ruby

Después de tenerlo instalado solo bastara con teclear en la consola:

 

$irb

Y tendremos algo como esto:

 

 

Ahora realicemos algunos ejemplos, como el famoso programa “Hola Mundo!!!”

 

 

Fácil, no? muy parecido a otros lenguajes, cierto?

 

Bueno creo que es todo por el momento, la idea es que fuera el abre bocas, para la próxima empezaremos con cosas creo que un poquito mas interesantes XD.

 

Fuente 1
fuente 2

Etiquetas: , , , , , , , , , , , , , ,

Comando GNU Screen

Posted by fortress On octubre - 11 - 2011

Bueno en esta oportunidad quiero hablarles del screen, que es una que nos puede ser muy útil cuando trabajamos en y necesitamos dejar realizando una tarea toda una noche, como por ejemplo el crear una nueva base de datos para un cliente la cual tiene muchísimos registros. Esto se vuelve un problema al momento que no quieres dejar tu maquina encendida toda la noche con la consola abierta porque sabes que si por “x” o “y” se apaga tu maquina el proceso automáticamente se termina y pierdes todo el trabajo. Ahí es donde aparece el comando que lo que hace es crear terminales virtuales independientes de tu consola y de la sesión de tu equipo, permitiendo recuperar la sesión en cualquier momento y desde cualquier otra maquina, así podrás ver como va la creación de esa BD desde tu casa. Bueno no mas carreta y a los hechos.

 

Para instalar solo digitas como root:

 

#apt-get install screen

Después de que se instale solo escribes “screen” en la consola y te aparece un mensaje con la licencia y otras cosas ahí solo presionas la tecla “space” para continuar y te dejara la consola limpia como si nada hubiese pasado :) pero si digitas “ps -aux | grep screen” te darás cuentas que si se esta ejecutando. screen funciona mediante “teclas rápidas”, “atajos de teclado”, “combinaciones de teclas”, algunas de estas combinaciones son:

 

[Ctrl]+[D] -> Cierra la terminal, si es la única que tenemos abierta, salir de screen.
[Ctrl]+[A],[C] -> Nos permite abrir más terminales virtuales.
[Ctrl]+[A],[N] -> Nos permite cambiar de una terminal a otra.
[Ctrl]+[A],[D] -> Nos permite cerrar la terminal sin cerrar los procesos que se están ejecutando.

Después de que salimos de la consola y queremos recuperarla solo basta que le pasemos al comando “screen” la opción “-r” y nos trae la ultima sesión. Pero resulta que si tenemos ya varias sesiones y queremos recuperar una en particular pues le pasamos la “-ls” y este nos muestra algo como esto:

 

fortress@SERCO-BRAGIRVI:~$ screen -ls
There are screens on:
5615.pts-1.SERCO-BRAGIRVI    (10/10/11 20:19:25)    (Detached)
5534.pts-1.SERCO-BRAGIRVI    (10/10/11 20:14:41)    (Detached)
2 Sockets in /var/run/screen/S-fortress.

y para recuperar la sesión especifica escribimos:

 

fortress@SERCO-BRAGIRVI:~$screen -r 5615

Donde el 5615 es el PID.

 

Bueno creo que es todo por el momento espero y les sea de bastante utilidad como lo ha sido para mi XD

 

Fuente

Etiquetas: , , , , , , , , ,

Transferencia de archivos en una red local con UDPcast

Posted by jhonber On agosto - 22 - 2011

En muchas ocasiones tenemos la necesidad de transferir archivos entre computadores, dentro de una red local (LAN).

Dependiendo de ciertas variables, como el tamaño del archivo o los PCs a los que se debe transferir dicho archivo; pensaríamos en diferentes soluciones por ejemplo pasarlo con scp o cualquier otro método que se nos ocurra (Ahí entraríamos a evaluar que tan viable es usar cada método).

Hace poco usé UDPcast, para dicha tarea y me ha parecido realmente útil. La situación era la siguiente:

- Había que pasar una imagen de 22GB que se encontraba en 1 PC, hacía el resto, más o menos 10 equipos.

Teniendo en cuenta que el archivo es muy grande y la cantidad de equipos a los que se debe pasar es considerable, pasar de uno en uno no es viable. Con UDPcast  podemos enviar desde un equipo donde se encuentre el archivo, a toda una red, pero no es que se envíe a todos los equipos de la red, lo que sucede es que se queda a la espera de , de algunos o todos los equipos de esa red (No necesariamente todos) esto se debe a que UDPcast usa Multicast, cuando los equipos del “grupo multicast” hayan hecho la petición, la del archivo comienza simultáneamente para todos esos equipos.

Cómo se hace?

- Instalar el paquete UDPcast

- Desde el Pc que tiene el archivo a transferir lanzamos el siguiente :

$ udp-sender  -p “gzip -c“  –file  /ruta/archivo  –min-receivers N

En la opción  –file indicamos la ruta del archivo a transferir y en  –min-receivers  indicamos el número de PCs a los que vamos a transferir el archivo. Con la opción -p enviamos el archivo comprimido. Al ejecutarlo:

Udp-sender 20100130
Using mcast address 232.168.0.100
UDP sender for  /ruta/archivo at 192.168.0.100 on eth1
Broadcasting control to 192.168.0.255

 

En este momento se encuentra en espera de conexiones.

-  Desde los demás equipos de la red, hacemos la petición del archivo:

$ udp-receiver  -p  ”gzip -dc”  –file  archivo

Con  -p  ”gzip -dc” descomprimimos el archivo mientras se transfiere. Al ejecutarlo:

Udp-receiver 20100130
Compressed UDP receiver for archivo at 192.168.0.101 on eth1
received message, cap=00000009
Connected as #0 to 192.168.0.100
Listening to multicast on 232.168.0.100
Press any key to start receiving data!

Hacemos lo mismo para el resto de quipos del “grupo multicast”, así cuando estén los equipos haciendo la petición, la transferencia comienza al tiempo para todos.

Para más información acerca de Multicast Aquí

 

Etiquetas: , , , , , , ,

Conexiones SSH sin password

Posted by fortress On agosto - 18 - 2011

Las personas que estan o estamos involucradas con el cuento de los servidores siempre se veran obligadas a utilizar el servicio de ssh, ya que no siempre podemos estar enfrente de ellos, por esta razon nos vemos obligados, a que cada vez que queremos conectarnos a este servicio, a estar digitando el password, por eso en esta oportunidad les traigo este truqito que trata basicamente, como lo dice el titulo de este post, de conectarnos via al ssh sin necesidad de digitar el password, los pasos son muy sencillos:

1. Abrimos la y digitamos

user@nombre-:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): <– Enter
Enter passphrase (empty for no passphrase): <– se deja en blanco
Enter same passphrase again: <– se deja en blanco
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
4a:6b:54:cf:7c:38:20:5e:6b:7e:05:0c:2a:17:74:22 user@nombre-pc
The key’s randomart image is:
+–[ RSA 2048]—-+
|    E.+ o        |
|     . = o       |
|    . + + o      |
|     + + * o     |
|      + S * o    |
|     o =   +     |
|      + . .      |
|     .   .       |
|                 |
+—————–+

2. Despues digitamos lo siguiente

user@nombre-pc:~$ ssh-copy-id -i .ssh/id_rsa.pub user@172.19.84.49
user@172.19.84.49′s password:
Now try logging into the machine, with “ssh ‘user@172.19.84.49′”, and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
user@nombre-pc:~$

Y por ultimo probamos ssh user@172.19.84.49 y no deberia pedirnos password, si por alguna razon no funciona entonces deberiamos revisar el archivo /et/ssh/sshd_config y descomentar estas lineas:

RSAAuthentication yes
PubkeyAuthentication yes

Reiniamos el servicio /etc/init.d/ssh restart y probamos de nuevo y ya deberia funcionar sin problemas

Bueno eso es todo lo que les tenia en esta oportunidad hasta proxima.

Fuente

Etiquetas: , , , , , , , , , ,

Mcabber: pequeño cliente jabber desde consola

Posted by jhonber On mayo - 4 - 2011

Mcabber es un jabber  desde consola lanzado bajo una licencia GNU GPL.

Algunas de sus características son:

- Support SSL/TLS/SASL

- History logging

- commands completion

- External actions triggers

- Dynamic modules

Instalación:

Para instalarlo se debe descargar desde el sitio web mcabber.com y seguir las instrucciones de compilación, también existe la posibilidad de que esté empaquetado para nuestra distribución, como es el caso de Debian, para lo cual usamos

aptitude  install  mcabber

 

Configuración (Básica):

Una vez hayamos instalado mcabber, se debe proceder a su configuración, para ello creamos el directorio

mkdir ~/.mcabber

y dentro creamos el de configuración de mcabber

touch ~/.mcabber/mcabberrc

En ese archivo se deben especificar algunos parámetros, para que mcabber puede funcionar, acá se puede ver un ejemplo muy básico

set jid = @gmail.com
set server = talk.google.com
set ssl = 1
set ssl_ignore_checks = 1

(Esta configuración es para acceder a Gmail)

El archivo de configuración de ejemplo lo pueden encontrar acá

Luego de guardar los cambios y correr mcabber, nos pedirá la contraseña de nuestra cuenta y debería funcionar. Los usuarios aparecen al lado izquierdo con el siguiente formato:

[*] usuario@gmail.com

* Entre las llaves puede haber una “o” si el usuario esta online, una “d” si el usuario esta no disponible, un “_” si el usuario no está online o “?” si no es un contacto confirmado

Configuración (Adicional):

Al principio puede ser algo confuso, el hecho de que por ejemplo no se puede distinguir los contactos conectados de los que no están conectados por el color. Para poder configurarlo de tal forma que distinga esos usuarios por color, al final el archivo mcabberrc se agrega lo siguiente (Los colores pueden ser otros)

color roster clear
color roster o     *                green
color roster d     *                red
color roster n_?  *               white

Ahora cuando volvamos a arrancar el mcabber tomará esa nueva configuración y se verá un poco más agradable. Esta es solo una de las tantas opciones que podemos configurar, para más información acá

 

Cómo se usa?

Algo importante es que la pantalla queda dividida en cuatro partes, una para los contactos, otra para los mensajes, otra para las notificaciones y quizás la parte más importante, donde podemos escribir.

Enseguida algunas acciones:

- Moverse entre los contactos: Para ello se usan las teclas Pg UP / Pg Down

- Escribir comandos: Todos los comando tiene este formato /COMANDO donde COMANDO es la orden a usar

Algunos comandos (Cuenta con auto-completado):

/say_to USUARIO MENSAJE : Para enviar un mensaje a algún contacto en específico

/roster unread_first : Para leer el primer mensaje de los que no se han leído

/roster unread_next: Para leer el siguiente mensaje de los que no se han leído

/roster search USUARIO: Para buscar algún contacto

/status ESTADO: Para cambiar de estado

/alias ALIAS = COMANDO OPCION: Para crear alias de los comandos que más se usen

/help : Para ver los comandos existentes

/quit : Para salir

Estos son algunos de los comandos más usados, pero son solo algunos.

La guía de usuario la pueden encontrar acá

No sobra decir que es un cliente “ideal” para todos aquellos amantes de la consola (Me incluyo) :P

Hasta la próxima!

Etiquetas: , , , , , , ,

Cifrado de archivos con Vim

Posted by jhonber On abril - 25 - 2011

Usando el editor Vim existe la posibilidad de cifrar el archivo en el cual estemos trabajando. Para ello Vim utiliza el algoritmo de cifrado simétrico por bloque Blowfish, algoritmo diseñado por Bruce Schneier.

Tomado de la Wikipedia:

Bruce Schneier (nacido el 15 de enero de 1963) es un criptógrafo, experto en seguridad informática, y escritor. Es el autor de diversos libros de seguridad informática y criptografía, y es el fundador y oficial jefe tecnológico de Counterpane Internet Security.

Leer más..

Es necesario que Vim haya sido compilado con la opción crypt. Para cifrar un archivo en concreto se pude usar en el caso que el archivo ya este creado el siguiente :

vim  -x  Archivo.txt

Inmediatamente Vim nos pide una clave de cifrado y su confirmación, el otro caso es cuando se este editando el archivo y se quiera cifrar, para lo cual se requiere introducir la opción -X (x en Mayúscula) en el modo comando de Vim, y nos de igual forma nos pide una clave y su confirmación. Para abrir el archivo no es necesario ninguna opción y Vim nos indica que dicho archivo está cifrado y requiere una clave para ser leído.

 

Referencias:

http://www.ehack.cl/2011/01/vim-ofrece-encriptacion-de-archivos-con-blowfish/

http://czuvirie.wordpress.com/2011/01/27/cifrar-archivos-vim-1/

Etiquetas: , , , , , ,

Como cambiar la consola predeterminada de Ion3

Posted by jhonber On enero - 31 - 2011

La consola por defecto que usa Ion3 es Xterm (Presionando ALF+F2) la cual es bastante sencilla. En algunas instalaciones que he hecho la consola viene con un color no muy agradable para mi gusto (Fondo blando – letra negra). Pero si lo que se busca es otra combinación de colores no hace falta cambiar de emulador de consola, bastaría con modificar en el de configuración correspondiente, para que arranque Xterm con los parámetros que se deseen.
El archivo a editar es /etc/X11/ion3/cfg_ioncore.lua y se edita el comando que se lanza al presionar (ALF+F2). La línea es más o menos así:

Otros archivos de configuración de Ion3 Acá

kpress(ALTMETA..”F2″, “ioncore.exec_on(_, XTERM or ‘x-terminal-emulator‘)”),

Nota: Si el archivo no se encuentra en esa ruta, lo podemos buscar con el comando

$ locate cfg_ioncore.lua

Un ejemplo podría ser

kpress(ALTMETA..”F2″, “ioncore.exec_on(_, XTERM or ‘xterm -cr green -fg green‘)”),

console
Para mirar otras opciones de Xterm Acá

Si quisiéramos algo más interesante como transparencias o sencillamente queremos usar un emulador de consola diferente (Según he leído en Xterm se puede lograr transparencias, pero no es tan de implementar). Con Aterm se puede obtener una consola totalmente personalizada y de manera muy sencilla.

kpress(ALTMETA..”F2″, “ioncore.exec_on(_, XTERM or ‘aterm -tr -cr green -bd green -tint cyan +trsb -sh 0 -trsb -fg green -sl 0‘)”),

console2
En el man de Aterm, se pueden encontrar todas las opciones disponibles.

En ese mismo archivo se pueden hacer otras configuraciones, tales como cambiar la combinación de teclas para lanzar comandos o incluso poner accesos rápidos a otras .

Etiquetas: , , , , , ,

Colección de Libros sobre Bash

Posted by jhonber On noviembre - 12 - 2010

Me ha llegado vía correo electrónico y Gracias a Tips-Linux.NET un conjunto de libros sobre Shell Scripting, y quise compartirlos con ustedes. Los libros son:



- Pro Bash Programming

bash

- Expert Shell Scripting
shell

- Beginning the Linux Command Line
shell

- Bash Pocket Reference
bash

- Linux Command Line and Shell Scripting Bible
shell

Descargar: link (21M)

También aprovecho para recomendarles un excelente libro de shell Scripting por supuesto, escrito por Julio Neves. El libro original está en portugués, pero también fue traducido a español e inglés. Vale resaltar que este libro a parte de ser muy bueno, también fue escrito para no hacer dormir al lector, esto gracias al buen humor del autor.

La pagina del proyecto Acá.

Referencias:

http://tips-linux.net/

http://wiki.softwarelivre.org

Etiquetas: , , , , , , , , , ,

Ataque de redireccion de llamadas en servidores Asterisk

Posted by fortress On octubre - 6 - 2010

Contextualización

El protocolo (Session Initialization Protocol) es un protocolo de señalización (application-layer control) creado para administrar sesiones multimedia entre dos o más partes. Muchos se confunden pensando en que el protocolo es quien transporta la voz propiamente dicha pero no es así, esta labor la realiza otro protocolo que veremos más adelante; de lo que sí se encarga es de la comunicación necesaria para establecer una llamada, modificarla, así como para finalizarla.

El protocolo SIP fue diseñado con la premisa de la simplicidad en mente, se trata de un protocolo de texto con mensajes de comunicación sencillos. Inclusive SIP comparte algunos códigos de estatus con HTTP como el familiar “404: Not found” Es un protocolo peer-to-peer.

Es decir que prácticamente toda la lógica es almacenada en los endpoints.

Señalización SIP: Métodos y respuestas

Métodos

Método Descripción
INVITE Invita a un a una llamada.
ACK Facilita el intercambio de mensajes confiables.
BYE Termina una conexión entre usuarios o declina una llamada.
CANCEL Termina un requerimiento o búsqueda por un usuario.
OPTIONS Solicita información acerca de capacidades del servidor SIP.
REGISTER Registra una ubicación de usuario.
INFO Usado para señalización en mitad de sesión. Para intercambiar información.

Respuestas

Response Code Response Category Response Description
100 Informational Trying
180 Informational Ringing
181 Informational Call is being forwarded
182 Informational Queued
200 Success OK
300 Redirection Multiple choices
301 Redirection Moved permanently
302 Redirection Moved temporarily
303 Redirection See other
305 Redirection Use proxy
380 Redirection Alternative service
400 Client Error Bad request
401 Client Error Unauthorized
402 Client Error Payment required
403 Client Error Forbidden
404 Client Error Not found
405 Client Error Method not allowed
406 Client Error Not acceptable
407 Client Error Proxy authentication required
408 Client Error Request timeout
409 Client Error Conflict
410 Client Error Gone
411 Client Error Length required
413 Client Error Request entity too large
414 Client Error Request URI too large
415 Client Error Unsupported media type
420 Client Error Bad extension
480 Client Error Temporarily not available
481 Client Error Call leg/transaction does not exist
482 Client Error Loop detected
483 Client Error Too many hops
484 Client Error Address incomplete
485 Client Error Ambiguous
486 Client Error Busy here
500 Server Error Internal server error
501 Server Error Not implemented
502 Server Error Bad gateway
503 Server Error Service unavailable
504 Server Error Gateway time out
505 Server Error SIP version not supported
600 Global Failures Busy everywhere
603 Global Failures Decline
604 Global Failures Does not exist anywhere
606 Global Failures Not acceptable

SIP y Asterisk

Algunos detalles a tener en cuenta cuando se usa el protocolo SIP con Asterisk son los siguientes:

  • A pesar de que SIP es independiente de la capa de transporte (puede ser usado con TCP, UDP, ATM, X.25, entre otros) en Asterisk su implementación está limitada a UDP.
  • Por omisión se usa el puerto 5060, pero este parámetro se puede modificar en el archivo sip.conf.
  • SIP adolece de problemas de NAT.
  • En Asterisk es posible hacer diagnóstico del protocolo SIP. Se verá esto más adelante.

Arquitectura de una red de VoIP



El

El ataque, básicamente, consiste en que el atacante debe de esperar a que la victima envié una petición de INVITE a lo que el atacante responde rápidamente con un mensaje SIP de redirección, provocando que la víctima envié de nuevo un INVITE pero esta vez con los datos que el atacante especifico.

El Escenario

El escenario para esta practica es relativamente sencillo, solo se necesita un servidor Asterisk, con un plan de marcacion sencillo, mínimo 3 clientes (para este caso son 3 softphones) y la herramienta RedirectPoison, que puede ser instalada en su maquina o utilizar backtrack que ya la trae instalada. Pasamos a describir cada uno (se tiene en cuenta que por falta de recursos todo se encuentra virtualozado con Virtualbox):

Servidor Asterisk (Elastix) IP 192.168.0.102, tiene configurado tres extensiones 100, 102 y la 105, todo lo demás esta en la configuración por default.

Cliente 1 Softphone Ekiga IP 192.168.0.100 extension 102 –> EXTENSION HACIA DONDE SE REDIRIGEN LAS LLAMADAS

Cliente 2 Softphone Zoiper, en una maquina windows XP, IP 192.168.0.104, extension 100 –> VICTIMA

Cliente 3 Softphone X-lite, en la misma maquina windows XP, IP 192.168.0.104, Extension 105 –> USUARIO CUALQUIERA.

La idea de la practica es marcar desde la extensión victima (100) hacia la extensión usuario cualquiera (105) y que esta llamada sea automáticamente redirigida hacia la extensión 102.

Ahora si manos a la obra.

El demo lo hice en un vídeo para mas facilidad y para que se entienda muchísimo mejor, es mi primer vídeo, no tiene audio, así que por favor mucha paciencia XD, prometo mejorar.

Demostración del ataque

Fuente 1 –> Asterisk

Fuente 2 –> Hacking Exposed VoIP

Bueno espero y les haya gustado y hasta la próxima

Etiquetas: , , , , , , , , , , , , , , , ,

Nuevo material para LPI

Posted by fortress On septiembre - 11 - 2010

Meses atras en , se publicaron un material educativo, para la preparación  de la certificación LPI, que incluia
unos examenes y otros documentos para para esta cetificacion.
En esta ocasion quisiera compartir con ustedes este nuevo material (actualizado al 2010) para que los que estan estudiando para este
examen tengan informacion mas reciente.

Link de DESCARGA

Espero y les sea de bastante ayuda.

Etiquetas: , , , , , ,

Aplicaciones vulnerables a ataques XSS en Facebook

Posted by jhonber On julio - 26 - 2010

Por estos días aprovechando el tiempo libre, he estado investigando sobre los ataques  (Cross-site scripting) XSS en algunas sobre Facebook. En el blog Desvaríos informáticos en un post publicado hace más de un año hacen una demostración de como incrustar código javascript en una aplicación vulnerable, en el ejemplo al hacer click en un link se abre un alert donde nos muestra las cookies de la página, completamente inofensivo, pero que nos hace pensar en muchas cosas que se pueden hacer con esa información. Aquí esta dicho post  http://rooibo.wordpress.com/2009/04/28/agujero-de-seguridad-en-facebook/.

Con base en el ejemplo de Desvaríos informáticos he preparado una URL donde al hacer click en un link se cerrará la sesión del Facebook de la victima.

Hace menos de cuatro días la forma de cerrar nuestra sesión era haciendo click en un botón Salir con una Url mas o menos así:

http://www.facebook.com/logout.php?h=21ed5705a23da92010c2a3scebs3d&t=27955277&ref=mb

Es decir enviándole los parámetros h, t y ref a la página logout.php de esta forma se “garantizaría” que el al cual pertenece la cookie h fue quien presionó el link de Salida, además evitando por ejemplo: si se redirecciona la victima al script http://www.facebook.com/logout.php no cerraría la sesión  del usuario ya que no tiene parametros validos.

Entonces para lograr nuestro propósito que es cerrar la sesión de la victima tendríamos que atravesar el Dom de la página coger ese link y redireccionar a ese link nuestra victima; hice varias bromas así :) pero luego me di cuenta que habían cambiado la forma de cerrar sesión :S ya no se utilizaba un link sino un formulario que al enviarse le pasa los parámetros de validación al script logout.php claro ya no con el método GET sino con POST. El form es algo como esto:

<form id=”logout_form” method=”post” action=”/logout.php”><input type=”hidden” autocomplete=”off” name=”post_form_id” value=”be875b2cfe5803f1bfc2bafed8c719ee”></input><input type=”hidden” name=”fb_dtsg” value=”CQKDv” autocomplete=”off”></input><input type=”hidden” autocomplete=”off” name=”ref” value=”mb”></input><input type=”hidden” autocomplete=”off” name=”h” value=”0779d7c779f7c29bd254ea9a61d2cd52″></input><label><input type=”submit” value=”Salir”></input></label></form>

Las variables que se le pasan al script son las que están en negrita.

Entonces para cerrar sesión solo hay que darle enviar al formulario y cómo hago eso?

document.getElementById(‘logout_form’).submit()

como vemos ubicamos el Elemento form através de su Id “logout_form” y simplemente le aplicamos el método submit() que equivale a dar click en el botón Salir.

Esta es la url completa donde creamos un link “Responder Quíz” y lo ubicamos en cierta parte de la aplicación cargada, cuando la victima de click en dicho link se ejecuta la línea de código anterior haciendo un logout :D

http://apps.facebook.com/qeres-buen-pol-ceijh/?target=list&send_id=1517598431&x=24897%22%20href=%22%20javascript:document.getElementById(‘logout_form’).submit();%22%3E%3Ch1%20style=%22margin:%2050px%2050px%2050px%2050px;color:blue;position:absolute;left:200px;%22%3E%20Responder%20Qu%C3%ADz%20%3C/h1%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%3Cbr%3E%22

Para que no sea tan sospechoso semejante link, como ya había mencionado nuestro amigo @Epsilon en una publicación Aquí , podemos aprovechar los acortadores de Url’s; esto ya es menos sospechoso:

http://tinyurl.com/26hnrzl

Si usamos un poco nuestra imaginación nos daremos cuenta que hay muchísimas formas de aprovechar esta vulnerabilidad.

Bueno ya con esto creo que es suficiente y espero que se haya entendido, ya que más importante que aprender a usar algo es comprender como funciona y crear nuevas cosas a partir de ese conocimiento.

Hasta la próxima!

Etiquetas: , , , , , , , , , ,

He querido compartir con ustedes este videotutorial que he creado, para mostrar una magnifica herramienta de CakePhp que se usa desde consola llamada Bake, y que nos facilita enormemente el desarrollo de nuestras con este framework.

En este videotutorial desarrollaremos una aplicación web, de forma muy rápida y lo mejor; y que aún me sorprende sin escribir ni una sola línea de código ;) . Bueno esto debido a que CakePhp se ha creado con los principios de Ruby On Rails.

Anteriormete había dedicado una entrada a la instalación de CakePhp acá.

Que necesitamos?

- Servidor web (Apache)

- Php5

- php5-cli

Para seguir este videotutorial es necesario tener algunos conceptos claros:

- Patrón de diseño MVC (Modelo – Vista – Controlador)

- Conceptos básicos sobre bases de datos

- Algunos comandos de Gnu/Linux

Formato .ogg – Tamaño (109.84 MB) – Descargar

Saludos! Hasta la próxima.

Etiquetas: , , , , , , , , , ,