Técnica XSS - y JavaScript Incluir

10

Estaba revisando la OWASP XSS Filter Evasion Cheat Sheet , y había una técnica completamente nueva para mí:

  

& JavaScript incluye
<BR SIZE="&{alert('XSS')}">

Probé el siguiente HTML:

<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <br size="&{alert('1')}">
    </body>
</html>

en Firefox 31.0 y no parece funcionar (es decir, no hay un cuadro de alerta). ¿Perdí algo, o esta técnica solo es aplicable a navegadores más antiguos?

    
pregunta Edwin Lee 08.08.2014 - 08:29
fuente

1 respuesta

16

JavaScript, la Guía Definitiva, Cuarta Edición - publicada en 2001 - menciones Estos en un poco más de detalle. La sección relevante parece ser disponible gratuitamente . Está justo en la parte inferior de ese enlace. Aquí está el extracto:

  

12.2.5. JavaScript en contextos no estándar

     

Tanto Netscape como Microsoft han implementado extensiones propietarias en sus navegadores, y es posible que ocasionalmente vea el código JavaScript en un contexto distinto al descrito aquí. Por ejemplo, Internet Explorer le permite definir los controladores de eventos en una etiqueta <script> que utiliza atributos especiales for y event . Netscape 4 le permite usar JavaScript como una sintaxis alternativa para definir hojas de estilo CSS dentro de una etiqueta <style> . Netscape 4 también extiende la sintaxis de la entidad HTML y permite que JavaScript aparezca dentro de las entidades (pero solo dentro de los valores de los atributos HTML). Esto puede dar como resultado un HTML similar al siguiente:

<table border="&{getBorderWidth( )};"> 
     

Finalmente, Netscape 4 también admite una forma de comentario condicional basado en la sintaxis de esta entidad de JavaScript. Tenga en cuenta que Netscape 6 y el navegador Mozilla en el que se basa ya no admiten estos usos no estándar de JavaScript.

Por lo tanto, es un abuso de la sintaxis de la entidad HTML típica, el tipo en el que usamos &amp; para producir un ampersand. En lugar de escribir amp , escribo {alert('oh no')} .

Sin embargo, el libro menciona que Netscape 6 , lanzado en 2000, aproximadamente en la época de IE6, y el primer navegador de Mozilla ya estaban tomando medidas para eliminar esta vulnerabilidad. Es bastante improbable que exista en versiones recientes del navegador.

Si alguna vez afectó a Internet Explorer (que en primer lugar no se menciona como un permiso), no tengo información sobre en qué versión dejó de ser un exploit de IE viable.

    
respondido por el doppelgreener 08.08.2014 - 08:46
fuente

Lea otras preguntas en las etiquetas