:::: MENU ::::

Cookies VS Session en PHP

Si eres programador de PHP sabrás que existen cookies y session, y, seguramente, habrás usado ambas.
Para hacer una web “tonta”, o de prueba, o en la que simplemente te vayas a loggear tu y no la conozca nadie y no tengas nada interesante, ¿para qué usar cookies si es mucho más tedioso?
Pero bueno, quiero hacer este post para discutir sus ventajas, desventajas, etc.

Session
Las sesiones de PHP es un sistema que lleva incluido el cual crea una cookie en el navegador llamada PHPSESSID que contiene un código de 32 caracteres generados al azar, y luego crea una carpeta donde para cada sesión guarda un archivo que contiene todos los parámetros que guardes en los conocidos $_SESSION[‘algo’].
Sí, es tan cómodo como poner session_start(); y empezar a guardar datos en el usuario, y para desloguearle es tan sencillo como un simple session_destroy();.La cosa es que también podemos intentar robar sesiones a base de fuerza bruta u obteniendo la cookie del navegador (pero lo último es algo irremediable, si tenemos acceso al ordenador del usuario, da igual si son cookies, sesiones, etc. que si queremos robar la sesión, podemos). Incluso con un analizador de de protocolo de red podemos sacar las cookies muchas veces, si no entran con SSL está chupado, y si no tan fácil como usar nuestra amiga, la foquita malvada, y hacer un SLAAC attack, pero bueno, olvidemos eso peusto que pasa lo mismo con las cookies.

Cookies
Volviendo al debate entre Cookies y Session (puesto que en la anterior me he ido por los cerros de Úbeda hablándoos de la Foca), las Cookies nos ofrecen más posibilidades a los programadores para jugar. Básicamente podemos crear cookies de la duración que queramos, con el nombre que queramos, que funcionen en la carpeta que queramos y encima los que almacenan la información temporal son los usuarios y no nosotros. Aun así, no es recomendable leer la información de las cookies y basarse en ella. Si es algo que el usuario pueda editar desde la web (como por ejemplo, el primer paso de un registro de dos pasos, siempre verificando la información dada), entonces sí que podemos confiar en que si editan algo, no nos perjudicará, ya que como buenos programadores comprobaremos que todo lo almacenado en las cookies sea válido como en el confirmación del primer paso del registro ¿verdad? (si no ya sabéis, ahí tenéis unas vulnerabilidades que arreglar YA).
Una vez sabemos los fundamentos de las cookies, sabemos que si almacenamos el ID de un usuario pueden simplemente cambiarlo por otro ID, y así entrar por ejemplo en el ID 1 que será seguramente el creador/administrador de la web. Pero para solucionar eso lo que se hace es crear otra cookie con números, letras, otros caracteres o lo que sea generados al azar y muy largos (de 100 o más caracteres) y almacenarlos junto al usuario en la base de datos, de modo que si el ID y el código creado coincide con las cookies se permite que vea la web logueado. Y sí, con eso también se puede hacer fuerza bruta, pero a más caracteres, más seguridad y además nos permite a los programadores tener el sistema de seguridad que queramos.
La cosa de las cookies es que podemos personalizar la duración, le podemos dar algunos flags que “aumentan la seguridad”, poner la ruta que queramos, y en fin, tenemos más control sobre las sesiones, y al fin y al cabo, cada programador tiene su estilo.

En definitiva: yo opto por usar cookies, siempre que vayamos con cuidado, aun que me niego rotundamente a poner el cartelito de ‘esta web usa cookies’, es una obviedad que si te vas a loguear por narices vas a usar cookies, dudo que haya alguna web que con el navegador, el sistema operativo y la IP ya te permita loguearte, por que si no tu herman@, padre, madre o lo que sea con el mismo ordenador vería tu cuenta, con lo cual, cookies always, ya sea por la sesión del PHP que crea una sola cookie, o por las cookies que cree una página personalizadas.

Y por último quiero pedir disculpas por haber estado tanto tiempo sin escribir nada, la verdad es que el tiempo no es algo que abunde, sobretodo cuando tienes pendientes 20mil trabajos de programación y 10 personas pidiéndote cada día por Skype cómo los llevas ejem. Y también os recuerdo que en mi canal estoy subiendo una serie de Minecraft (que no tiene nada que ver con informática, pero en mi canal hago lo que me da la gana, ¿no?) así que ya sabéis, si os gusta, ahí está :P

Buenas tardes y feliz fin de semana a todos :D


Bug en Flattr: Registrarse siendo menor

Como sabéis, de momento, soy menor de edad, pero quería hacerme una cuenta en Flattr ya que permite obtener beneficios de donantes (es un servicio bastante interesante creado por Peter Sunde, uno de los creadores de The Pirate Bay) que le dan a un botón de tu página.
El servicio funciona de la siguiente manera: Tu pones un botón en tu página y luego los donantes asignan una cantidad de dinero,  después, el donante va por las páginas, y cuando ve un  botón de Flattr y dicha página o proyecto le resulta interesante al darle al botón se añade a una lista. A final de mes el dinero que asigno al principio se reparte entre todas las págnas/proyectos de esa lista, y de esa manera contribuyen a su desarrollo.

Bueno, volviendo al tema, yo no me podía registrar por que era menor,  y descubrí que simplemente cambiando el valor del selector del formulario me podía registrar con mi fecha de nacimiento real sin que la web me diera ningún problema, no se como funcionarán las fechas,  ni tampoco se si son posteriormente verificadas y se pueden poner bestialidades como 30 de febrero, pero al menos si se lo del registro, tan pronto como publique este post les enviaré un correo para que corrijan el problema y así eviten algunos valores que pueden ser perjudiciales, ya que en ningún momento lo hago por el mal de Flattr, lo que si pediré es si me permiten quedarme la cuenta…

Como podéis observar en la siguiente imágen con tan solo inspeccionar elemento y cambiar el valor de la opción del select a 2014 ya nos vale para cambiar la fecha, y nos deja registrarnos sin problema.

Valor cambiado con Inspeccionar Elemento

Valor cambiado con Inspeccionar Elemento

¿Cómo afirmamos que se guada la fecha introducida?
Si vamos a ajustes de nuestra cuenta con una fecha normal, en el código fuente sale seleccionada por defecto para que nos salga la que tenemos en el formulario, en cambio si miramos el código del registro que hemos alterado notaremos que ese trozo de código de la selección de la opción por defecto desaparede, lo cual significa que no concuerda con los años que seguramente generará un simple bucle for, y por ello no se muestra en ningún sitio, lo que confirma que la fecha alterada ha sido guardada en la base de datos.

Demostración

‘¿A qué viene este post?’ me diréis, bueno, pues más que nada es por que supongo que incluiré Flattr en la página y os voy avisando, además de publicitarlo un poco, no solo para que me ayudéis a mi (si queréis), si no que ayudéis a otros proyectos que lo merecen mucho más que yo y que se ganan la vida con ello y no un Hobby como el mio, además para gente que necesite el dinero más que yo.

Mañana ya es martes y tengo el último examen, lo cual significa que podré dedicar más tiempo al blog y subir de una vez una demostración de por que los chats son inseguros analizando los paquetes con wireshark y desencriptando un chat que crearé en C# en un ratillo. Buenas tardes a todos :)


Conectarse a una red Wi-Fi pública es un suicidio

Contínuamente estamos pendientes de encontrar alguna red donde conectarnos para no gastar nuestros “valiosos” megas, ¿verdad?
Con este post quiero demostrar que dichas acciones no son las más recomendables, os lo aseguro.

La cosa es que cuando te conectas en una red pública, no sabes a dónde te estás conectando, ni a través de dónde estás entrando a internet. Si vamos a una cafetería que ponga ‘Wi-Fi Zone’ lo más seguro es que sea un router normal con Ono, Movistar o cualquier otra ISP de estar por casa. Lo que quiero decir con eso es que un router de ese tipo no tiene ningún tipo de seguridad, cualquiera se puede conectar, y al ser algo tan pequeño con herramientas como Network Spoofer para Android, FaceNiff (también de Android) o Wireshark (de Windows), entre otras de ámbito más profesional, o incluso propias, podéis encontraros con un Man in the Middle, que traducido es básicamente “El hombre en medio”, que consiste básicamente en un dispositivo (móvil, ordenador…) que se conecta a la misma red y hace algo como: “A partir de ahora todo el tráfico pasa por mi, por que nadie en ese router lo puede evitar, y yo me encargo de rebotaros a internet y viceversa”, lo que supone un grave peligro.

¿Qué permiten hacer esas herramientas?
Pues muy fácil, la primera es más que nada para “divertirse” un rato, nos permite alterar las páginas web, pero puede llegar a suponer un gran problema de seguridad, puesto que puedes estar entrando a Facebook, Twitter o lo que sea, alterar el contenido de dicha página y colarte un exploit, un archivo (en el que tu confies al no tener constancia del Man in the Middle), etc. Con ello podrías obtener un rico troyano. Adjunto abajo una captura para que se aprecie lo fácil que puede ser usarlo con tan solo unos conocimientos básicos de inglés, y por ello el riesgo que implica.
El segundo es algo más mezquino, en un principio nos permitía robar cuentas de Facebook, pero ahora mismo permite robar cuentas de muchos más servicios, como Twitter, YouTube, VK Videos, GMail, etc.
El tercero es un analizador de paquetes, se requieren más conocimientos para usarlos, puesto que los demás los puede usar cualquiera que sepa leer en inglés, en este en cambio eres tu el que se encarga de revisar los paquetes que se envían por tu red, pero de la misma forma podrías robar cuentas de Facebook, de Twitter, de Tuenti, etc… vamos, lo que se te ocurra (y no solo robar cuentas, puedes robar cualquier tipo de información que pase por la red.

 

Captura de Network Spoofer de Android

Captura de Network Spoofer de Android

No quiero decir que pase en todas las redes Wi-Fi pasen esas cosas, pero si que, desafortunadamente, pasa en muchas, sobretodo en sitios grandes tales como un aeropuerto, un Starbucks, etc.
Y desafortunadamente también, pueden ocurrir cosas así en redes de colegios y sitios donde niños de 5 años puedan conectarse con sus reducidos conocimientos acerca de internet, y, al entrar en una página de juegos, encontrarse un contenido no demasiado agradable, y eso ha pasado, demasiadas veces ya, por falta de seguridad.

¿Cómo se puede evitar?
Lo que recomiendo es que nunca os conectéis a una red pública (excepto si os encontráis en un caso de emergencia de tal magnitud que sin contacto con el exterior os puedan suceder cosas graves, lo cual no debería pasar…).
Además de no conectaros a redes públicas, tampoco a ninguna red privada en la cual no confiéis, hay redes en institutos la contraseña de las cuales solo es conocida por sus alumnos, pero con la cantidad de información que hay en internet, y reiterando menciono este blog, es tan fácil para alguien que posea un móvil como buscar ‘hackear mi instituto’ o cosas así, y con saber leer inglés (como se puede apreciar en la imágen superior) y con un teléfono rooteado con Android (el cual se rootea en 5 minutos), es tan fácil como seleccionar entre unas apetitosas opciones la que nos haga más ‘gracia’.
Otra recomendación sería desactivar el Wi-Fi al salir de casa. ¿Por qué? Pues por que muchos teléfonos (como es el caso de iPhone) se conectan a las redes que tengan guardadas, es puede ser útil y perjudicial a la vez sin su determinada seguridad (la cual no hay en dicho teléfono) puesto que si encuentra un router con el mismo SSID (con ello quiero decir, una red con el mismo nombre) se intentará conectar, ignorando la dirección MAC y cualquier otro parámetro vital para evitar la desafortunada conexión, de modo que si quieren hacerte un Man in the Middle planificado, solo tienen que acercarse a tu casa, ver cual es el nombre de tu red (con suerte no tendrán que sacar la contraseña a fuerza bruta o con diccionarios/cálculos) y crear una red, ya sea con el móvil (si no tienen nada más) o con un router y usar una de las herramientas mencionadas anteriormente (u otra que hayan creado ellos mismos, o incluso otra que haya en internet, puesto que las hay para aburrir).

El artículo de hoy ha sido algo más pobre puesto que no estaba demasiado inspirado, ha sido una idea de última hora puesto que estaba preparando algo para hoy pero no me ha dado tiempo, espero tenerlo para esta semana. Feliz resto del lunes y que aprovechéis bien la semana ;)


Todo es posible si tienes acceso físico

Tal vez os extrañe un poco el título del post, la verdad es que puede significar muchas cosas, pero en verdad eso pasa con todo. Tal vez quiera hacer referencia a algo como: “por teléfono no te puedo pegar, pero si te tengo delante, sí”, eso es así en cuanto a seres humanos, pero ocurre lo mismo en cuanto a máquinas (a pesar de los cifrados de los cuales no hablaré en este post).

A veces la gente puede llegar a creer que está segura solo con poner una contraseña al ordenador, o un patrón en el móvil, etc. pero la verdad es que eso es totalmente falso.
Hay muchos métodos con los que se puede conseguir el acceso total a un dispositivo, pero si tenemos acceso a el de forma física, nuestras posibilidades crecen de forma exponencial. En el caso de iPhone a veces puede ser tan simple como preguntarle a Siri quien somos, cambiar la contraseña desde otro teléfono y poner el código de confirmación que nos sale en la vista previa del mensaje (obviamente, puede ser desactivado, pero es una forma de las miles que hay, y ya por no hablar de si tenemos un ordenador a mano al que conectarlo).

Si tenemos un ordenador y tenemos otro dispositivo muchas veces es tan fácil como conectarlo, otras habrá que hacer alguna que otra cosilla, pero casi siempre lograremos el acceso sin tener que complicarnos demasiado. Es algo sencillo. En el caso de iPhone, al conectarlo a un PC tenemos acceso completo a sus datos de una manera más o menos sencilla, es por ello que no debemos enchufarlo vía USB a donde nos de la gana, si no que debemos tener en cuenta dónde lo estamos enchufando. Si vas a casa de un “amigo” (que no sea tan amigo) y os dice que podéis cargar vuestro dispositivo enchufándolo a su ordenador, en cuestión de milisegundos ya ha podido inyectaros cualquier cosa, ver vuestras fotos, leer/modificar vuestros WhatsApps (se puede ver un ejemplo aquí) y claro, imaginaos que ese “amigo” es vuestro jefe y os la quiere liar, con eso puede (excepto si recordemos que un mensaje en WhatsApp no tiene validez legal).
Obviamente lo de WhatsApp no es lo único que se puede hacer, hay muchisimas cosas que se pueden hacer, y no solo en iPhone, también en Android, BBOS o cualquier otro sistema operativo (para que luego no me digáis que odio Apple).

Pero no solo quería hablaros de móviles, también de otros dispositivos, y con ello no me refiero a Tablets, consolas portátiles y eso (que también) si no a ordenadores. Obviamente la gente normalmente ni tan solo se molesta en poner una contraseña en Windows por que no son conscientes del peligro, y por pereza pasan del tema, pero si olvidamos ese alto porcentaje de la población, y nos encontramos con que han puesto una contraseña, la solución es tan fácil como meter un Pen Drive (o en su defecto un CD/DVD) con un programa para Bootear (por no hablar ya si conseguiis que se ejecute un archivo en un Pen Drive directamente, de esa ya os doy un “Premio Martincito”). Bueno, que me salgo del tema, si tenemos un Pen Drive booteable, que lo podemos conseguir con cosas como Hiren’s BootCD (y lo metemos hacemos booteable con UUI, que a pesar del pensamiento general, no solo sirve para Linux) ya lo tenemos, Hiren’s nos da una herramienta para recuperar nuestra contraseña (cambiarla), y con ello, si somos algo maliciosos, tendremos acceso completo a todo el ordenador. No me digáis que habéis cambiado en la BIOS que no se pueda Bootear un Pen Drive, por que si el ladrón, “amigo”, vecino, hijo, padre, tiene acceso al ordenador, también tiene acceso a la BIOS (y es por ello que digo que todo es posible si tienes acceso físico, y si no, es probable que también, por métodos más complejos).

Ejemplo del Hiren's BootCD

Ejemplo del Hiren’s BootCD

Otro método más fácil/difícil (según que ordenador tengamos) sería desmontar el disco duro, y si no está cifrado, tachán, lo conectamos por un cable sata, eSATA, adaptador de SATA a USB, IDE si es antiguo, o lo que quieras, y ale, tenemos todos los archivos a nuestra disposición, otra opción sería entrar con un LiveCD de Linux (u otro sistema operativo) y más de lo mismo, aun que bueno, eso ya es decisión vuestra, a veces puede ser mejor una cosa u otra según la situación, no cambiaréis la contraseña si no queréis que se den cuenta de que habéis entrado, ni desmontaréis el PC si no queréis que se rompa la pegatina (que llevan algunos ordenadores) de la garantía, etc.
Y vuelvo a repetir, lo que digo no solo es para Windows, también sirve para Linux y Mac OS X, no con Hiren’s pero si con otro software (y obviamente, un iMac no lo desmontaréis, por que no tenéis en vuestra casa las herramientas, ¿verdad?, ejem…).

Bueno, y ya para terminar vuelvo a aclarar que todo lo que enseño en este Blog no es para enseñar a romper la seguridad, si no para que la gente sea consciente de lo que le pueden hacer, y de lo que debe evitar. Básicamente, no confiéis en nadie, y menos si sabéis o desconocéis su cantidad de conocimientos informáticos, por que hay cosas que las hace hasta un niño (literalmente).

Me despido aquí por hoy, mañana más y mejor. Feliz domingo y mañana lunes ;)


Con Skype expones tu IP

¿Cuántos de vosotros tenéis Skype?
Skype es un servicio de mensajería instantánea y de llamadas famoso, utilizado mundialmente y la verdad es que es muy práctico. El problema entra cuando tienes enemigos.
¿Has visto últimamente que a veces se caen los directos de algunos Youtubers famosos? Se ha puesto de moda agregar a gente que no conoces a Skype, lo cual no es un problema hasta que te toca alguien que sabe algo que tu no sabes, y es que solo con tener tu nombre de Skype (no hace falta ni tenerte agregado) ya puede conseguir tu IP, y luego simplemente ataca a tu IP con algún programa (lo haya creado el u otra persona, dependiendo de su nivel) y cataplof, el directo se va al garete.
La cosa no afecta tan solo a directos en Youtube, también pueden atacarte por que sí, cuando quieran y el tiempo que quieran, así que imagina que estás echando una partidilla al League of Legends (u otro juego), tienes el mismo nombre en Skype y en el juego, y hay un hacker por ahí, puede provocar que tu equipo tenga una desventaja de 4vs5, así que es otra cosa a tener en cuenta.

IP Resuelta

Ejemplo de IP resuelta de Skype

¿Cómo lo hacen?
Hay métodos manuales para obtener la IP de alguien, pero ya hay muchas webs que se encargan de hacerlo por ti, y te ahorran bastante trabajo.
Aquí tenéis un ejemplo en el que saco mi propia IP:
Y luego para tirarle la conexión a alguien es tan fácil como acudir a un servicio gratuito como inboot.me (en caso de que no sepas sacarte las castañas del fuego) y simplemente con pagar una cantidad insignificante bum, despídete de la conexión. Por si no lo creéis, podéis hacer la prueba aquí: https://inboot.me/testboot.php y os la tirará a vosotros mismos durante 45 segundos.

Aviso: Con esto no quiero incitar a que lo intentéis, solo os demuestro lo fácil que es para cualquiera, sin necesidad de grandes conocimientos informáticos, sacar vuestra IP y jugaros una mala pasada.

¿Se puede evitar?
Por supuesto, hay varias formas de evitarlo:
-Podéis usar un Proxy/VPN, pero como ya demostraron en una pequeña investigación, el 18% de los proxies modifican el source de las páginas para obtener datos (ya sea con o sin tu consentimiento) y el otro 82% puede también conseguir información por otros métodos, más adecuados, en el caso de que solo se use para Skype. Así que u os compráis un VPS y os montáis vuestro proxy para Skype, lo que os puede suponer un gasto de 5€/mes con Kimsufi (no es por hacer publicidad, pero sus servidores son muy asequibles), u os arriesgáis con un Proxy/VPN gratuito.
-Desinstalando Skype y usando alternativas como TeamSpeak.
-Evitando el uso del mismo nombre en Skype y en juegos, así como evitando pasar vuestra cuenta a gente desconocida o amigos “hackers” que os puedan gastar una broma.

Bueno lectores, este es mi primer post y como tal no es muy largo, pero creo que puede ser interesante y por ello lo he publicado, buen fin de semana :)