Cómo evitar la codificación html y producir scripts de sitios cruzados (XSS)

Hola,

El proceso que conozco se llama doble codificación . Toma el parámetro de solicitud del usuario y lo procesa dos veces en formato hexadecimal.

De esta manera, puede pasar por alto los controles de seguridad ya que el servidor web procesa muchas solicitudes en forma codificada

En realidad, es útil en el caso en que los filtros de seguridad descodifiquen las entradas del usuario una vez.

Los atacantes pueden inyectar doble codificación en los nombres de ruta o cadenas de consulta para omitir el esquema de autenticación y los filtros de seguridad que usa la aplicación web.

Hay algunos conjuntos de caracteres comunes que se usan en ataques a aplicaciones web.

Por ejemplo, los ataques transversales usan “../” (punto-punto-barra oblicua), mientras que los ataques de secuencias de comandos en sitios cruzados usan caracteres “”. Estos caracteres dan una representación hexadecimal que difiere de los datos normales.

Por ejemplo, los caracteres “../” (punto-punto-barra) representan% 2E% 2E% 2f en representación hexadecimal. Cuando el símbolo% se codifica nuevamente, su representación en código hexadecimal es% 25. El resultado del proceso de doble codificación “../”(dot-dot-slash) sería% 252E% 252E% 252F:

  • La codificación hexadecimal de “../” representa “% 2E% 2E% 2f”
  • Luego, codificar el “%” representa “% 25”
  • La doble codificación de “../” representa “% 252E% 252E% 252F”

como a continuación se muestra la URL de ejemplo

http: //victim/cgi/../../winnt/system32/cmd.exe? / c + dir + c: \

URL codificada doble:

http: //victim/cgi/%252E%252E%252F%252E%252E%252Fwinnt/system32/cmd.exe? / c + dir + c: \

más referencia ->

Hoja de trucos de evasión del filtro XSS

Espero que te ayude a entender el proceso de omisión.

Gracias.

Depende de cómo y dónde los desarrolladores hayan aplicado técnicas de codificación, si es del lado del cliente, puede cambiarlo para uso temporal a través de elementos inspeccionados y luego, utilizando datos de temperamento o barra de corte, puede ejecutar un XSS. Pero, si la página y sus solicitudes están codificadas por el propio servidor, también puede omitir las solicitudes en formato plano mientras está entrando. Puede requerir un poco de conocimiento profundo sobre html y qué nivel de codificación de caracteres han usado. También puede codificar su secuencia de comandos XSS utilizando la barra de corte o los datos de temperamento para que el servidor acepte su solicitud XSS como válida.

Hiren Patel (Pune, MH)