Ejemplo de cliente reflejado XSS que no está basado en DOM XSS

0

Dado que categorizo XSS en una matriz de {cliente, servidor} x {almacenado, reflejado} y trato DOM XSS como un subconjunto de cliente XSS, ¿puede haber un reflejado cliente XSS que es no basado en DOM? No puedo encontrar ni pensar en un ejemplo porque se puede acceder a todos los valores reflejados que se me ocurren con los métodos DOM.

    
pregunta Prinzhorn 21.06.2017 - 10:00
fuente

1 respuesta

2

De esas categorizaciones :

  

El cliente XSS se produce cuando se usan datos no confiables proporcionados por el usuario para actualizar   el DOM con una llamada de JavaScript no segura.

(en la mía)

Por lo tanto, para que sea cliente XSS, tiene que implicar actualizar el DOM.

Aunque, el artículo continúa diciendo:

  

DOM Based XSS es simplemente un subconjunto de Client XSS

Creo que esto se refiere a que la fuente real proviene del DOM en lugar del servidor.

por ejemplo

foo.innerHTML = document.location.hash;

En lugar de

foo.innerHTML = ajaxResult;

Esto se debe a que la definición de XSS basada en DOM es la siguiente:

  

DOM basado en XSS es una forma de XSS donde toda la información contaminada   el flujo desde la fuente hasta el sumidero tiene lugar en el navegador, es decir, la fuente   de los datos está en el DOM, el sumidero también está en el DOM, y los datos   El flujo nunca abandona el navegador.

Por lo tanto, el XSS basado en el cliente reflejado que no se basa en DOM es donde los datos en sí mismos son del servidor (reflejados en la respuesta de la solicitud HTTP), pero el código se representa en la página a través de JavaScript.

Ejemplo:

Solicitud:

http://example.com?name=<svg onload=alert(1) />

(El nombre estaría% codificado, pero lo he dejado sin codificar aquí para mayor claridad)

Respuesta:

<script>
var name = "<svg onload=alert(1) />";
$('#output').html(name);
</script>

<div id="output">
</div>

Para llevar

Lo que es probablemente importante cuando se trata de XSS es lo siguiente:

  • Cualquier tipo de XSS almacenado es mayormente mayor riesgo que cualquier forma de XSS reflejado. Los filtros XSS del navegador no pueden detenerlos (excepto si hay una Política de seguridad de contenido vigente y está suficientemente bloqueada).
  • Cuando un XSS actualiza el DOM en un ataque XSS reflejado, esto también evita los filtros XSS del navegador (las mismas advertencias con respecto al CSP).
  • El servidor XSS reflejado es menos riesgoso, ya que requiere la interacción del usuario y también es muy probable que un filtro XSS del navegador lo bloquee.
respondido por el SilverlightFox 21.06.2017 - 11:53
fuente

Lea otras preguntas en las etiquetas