jueves, septiembre 10, 2009

El caso del código fuente perdido

En esa andabamos en el sótano dándole vueltas a una idea. Con las pruebas. Conectando desde una página .NET a un servidor por un puerto cuando sucedió lo inexperado. El cadaver desapareció.

Bueno, la verdad es que no se perdió el cadaver. Lo cierto es que se perdió el código fuente, y ...bueno... tan poco se perdió. La realidad es que dejó de pintarse.

La historia tiene que ver con algo que está hoy tan de moda, como el día de ayer 10 años antes. ¿Qué por qué era famoso el día de ayer años antes? Déjame que te cuente jovenzuelo que el día de ayer, diez años antes, fue 9 del 9 de 1999, o lo que es lo mismo: el 9999 en formato de fecha reducido. Ese fue el primer paso pasa salvar el anticipado MEGAFAIL del apocalíptico año 2000. Para los muy jóvenes, esa fecha significaba que los ascensores podían comerte, los faxes acuchillarse y los aviones caerse, pues el 9999 era igual a fin de fichero en Cobol pero... al final nada pasó.

Pero... ¿dónde andaba yo? ah, sí, perdón, que los años no perdonan y uno pierde el hilo de la conversación con facilidad...

Estabamos haciendo una conexión a un puerto desde ASP.NET y pintando los resultados en la página web, cuando nos salieron unos simbolicos raros. No es de extrañar, el servidor nos estaba escupiendo caracteres no imprimibles o fuera del rango.

Hasta ahí todo iba según lo previsto pero cuando intentamos visualizar el código fuente de la página...la página se cortaba a la mitad y no se podía visulizar el código de la misma, como se puede apreciar en la siguiente captura.


Código fuente truncado

Manu "The Sur", el onubense de mejor visión, saltó con un "ahí vá!, sa roto!". Esto no es raro en él, pues su ordenador es como el baúl sin fondo de Doraimon, del que puede pasar cualquier cosa. Y cada dos por tres está reparándolo...

¿La explicación en esta ocasión? Pues algo muy sencillo. El visor de código fuente de iE8, cuando se encuentra con un caracter nulo, es decir, el famoso , se queda petado y no continua imprimiendo el código fuente.

Sería suficiente que una página web de servidor hiciera algo como:

Response.Write("Se ve");
Response.Write((char)0);
Response.Write("No se ve");


Para que en el código fuente no se viera la última parte.

¿Para que puede servir esto? Pues suponiendo que todo el mundo navegara con IE8 para ocultar código Script malicioso, pero no se nos ocurrieron muchas más malicias. Habría que probar si algún crawler peta también cuando se encuentra el ya famosísimo en el código fuente... pero esa es otra historia, y ya es hora de dormir.

Saludos Malignos!

9 comentarios:

  1. ...vaya... y encima el problema de las carpetas compartidas en win7...

    (Sí ya tardaba en salir) :-P

    No te preocupes cada vez más gente navega con FireFox ;-P

    ResponderEliminar
  2. Mmmmmm interesante, he estado probando y el problema parece que está al pintar el texto, ya que si lo guardas desde el visor, guarda el código completo sin problemas.
    En defensa de Windows he de decir que en Opera 10 también pasa lo mismo. No es el caso de Firefox 3.5 que muestra bien el código.

    PD: Parece obligatorio últimamente que en cada comentario aparezca una referencia al problema del BSOD... xD

    ResponderEliminar
  3. que chula la entrada!
    \0
    <script>location("http://www.playboy.com")</script>

    ;)

    ResponderEliminar
  4. Deja las drogas... y duerme un poco que se te ha petado el cerebro.

    ResponderEliminar
  5. También pasa algo similar en chrome, pero mas chulo, porque no trunca sino que puedes ocultar partes de codigo en concreto =)

    /ts

    ResponderEliminar
  6. Lo que ha hecho "Miguel" es un intento de XSS a un informático en el lado del mal?? xDD. Por cierto, no filtráis las entradas en los comentarios?

    ResponderEliminar
  7. Ya ves, siempres son las mismas cagadas. Programadoresssssssssss...

    PD: Me ha inspirado el captcha: "hagain".

    ResponderEliminar
  8. Eso, eso: que nadie se preocupe, que cada vez más gente navega con Firefox (me incluyo entre ellos, pero quizá debería preocuparme):

    Mozilla Foundation Security Advisory 2009-47
    http://www.mozilla.org/security/announce/2009/mfsa2009-47.html

    Mozilla Foundation Security Advisory 2009-48
    http://www.mozilla.org/security/announce/2009/mfsa2009-48.html

    Mozilla Foundation Security Advisory 2009-49
    http://www.mozilla.org/security/announce/2009/mfsa2009-49.html

    Mozilla Foundation Security Advisory 2009-50
    http://www.mozilla.org/security/announce/2009/mfsa2009-50.html

    Mozilla Foundation Security Advisory 2009-51
    http://www.mozilla.org/security/announce/2009/mfsa2009-51.html

    ResponderEliminar
  9. Muy curioso si señor.

    Por cierto: Style dentro body ? O_o

    ResponderEliminar