XSS en un elemento de entrada con estilo = “mostrar: ninguno”

17

Suponga que solo se permiten comillas dobles proporcionadas por el usuario en una etiqueta input que tiene el atributo style establecido en display: none .

Algo como esto:

<input type="text" style="display: none;" value="aa" autofocus/onfocus="prompt(1)">

Dado que el punto de inyección está detrás del atributo de estilo, ¿es posible obtener XSS activando un controlador de eventos?

    
pregunta Utkarsh Agrawal 02.04.2018 - 13:13
fuente

2 respuestas

14

Siempre puede usar el mismo enfoque que se puede usar para entrada oculta , pero esto requiere bastante ingeniería social ya que es difícil de activar.

Sin embargo, puede usar un atributo de evento diferente que puede ser más fácil de activar. oninvalid viene a la mente porque no requiere que se muestre el elemento:

<form>
<input type="text" style="display: none;" value="aa" oninvalid="alert(1)" pattern="b">
<input type="submit" value="Submit">
</form>
    
respondido por el tim 02.04.2018 - 15:13
fuente
3

Similar a lo que se mencionó con accesskey , puede obtener onclick para disparar elementos ocultos usando label elementos.

Al hacer clic en <label for="some-id"> , el navegador buscará la entrada first con ese elemento y realizará un clic, incluso si está oculto. Un caso de uso legítimo para esta función es la casilla de verificación / entradas de radio donde la etiqueta se usa para indicar el estado, como los selectores de frecuencia en la página de configuración de correo electrónico de este sitio .

Imagina que tienes un formulario que se parece a esto:

<input type="text" style="display:none" value="" onclick="alert(1)">
<label for="field">Name</label>
<input type="text" id="field">

El valor, " id="field daría lugar a una página con este aspecto:

<input type="text" style="display:none" value="" id="field" onclick="alert(1)">
<label for="field">Name</label>
<input type="text" id="field">

Recibirá una alerta si el usuario hace clic en "Nombre". La frecuencia con la que los usuarios hagan clic en la etiqueta dependerá de muchas cosas, pero algunos diseños de sitios pueden requerir hacer clic en una etiqueta para realizar una tarea determinada.

Esto también depende en gran medida del orden de las páginas. La ubicación de la entrada oculta en relación con la entrada legítima es importante, así como si la entrada oculta tiene una identificación y dónde está en relación con el valor.

    
respondido por el Brian Nickel 05.04.2018 - 21:05
fuente

Lea otras preguntas en las etiquetas