Estoy aprendiendo sobre la vulnerabilidad de XSS. Necesito saber qué tipo de ataque XSS se puede hacer en las URL limpias.
Ejemplo de URL limpia: //my url.net/project/public/#questions/question/edit/id/122/answer/1
Estoy aprendiendo sobre la vulnerabilidad de XSS. Necesito saber qué tipo de ataque XSS se puede hacer en las URL limpias.
Ejemplo de URL limpia: //my url.net/project/public/#questions/question/edit/id/122/answer/1
No estoy seguro de a qué te refieres con what sort of xss attack can be done on clean urls
, así que repasaré ambos tipos de XSS para tu situación.
Realmente depende de cómo se usa esa URL para representar la página. Primero hablemos de dos tipos diferentes de XSS.
XSS reflejado : parte de su URL se representa en la página y el ataque la carga es parte de su URL. Necesitas engañar a los usuarios para que hagan clic. Tu enlace para ejecutar el ataque.
XSS almacenados : el XSS se almacena en el servidor debido a la inseguridad. programación. Luego, cuando un usuario visita la página con la carga útil XSS, El ataque se llama desde el servidor. El usuario solo necesita visitar la página, no se requiere hacer clic en el enlace.
Por lo tanto, no mire su URL de ejemplo:
//my url.net/project/public/#questions/question/edit/id/122/answer/1
Cuando veo esto por primera vez, no veo nada que salte de la página, pero, por razones, digamos que está representando el último parámetro (1). Si cambia la URL a esto:
//my url.net/project/public/#questions/question/edit/id/122/answer/1<script>alert('xss');</script>
y engañaste a un usuario para que hiciera clic en ese enlace, mostraría xss
en un cuadro de alerta en su página. Este es un ataque XSS reflejado.
Un escenario más probable es que el último parámetro (1) se use para extraer información de la base de datos y mostrarla en la página. Si no se ha protegido adecuadamente contra XSS, es posible que alguien haya enviado una respuesta que contenga el código javascript. Ejemplo:
My answer to question 1<script>alert('xss');</script>
Ahora cualquier persona que vea esa respuesta verá un cuadro de alerta que dice xss
.
No hay ninguna razón por la que no puedas hacer algo como:
//my url.net/project/public/#questions/question/edit/id/122/answer/1"><script>alert(document.domain);</script>
Sin embargo, dicho esto, depende totalmente de cómo se procesa la salida, si los caracteres se codifican con entidades HTML o caracteres especiales HTML, o si solo se imprimen como texto sin formato.
Lo que debe hacer es llamarse "Fuzzing", donde agrega caracteres no deseados en una entrada (ya sea una caja de entrada o una URL o lo que sea) y ve cómo regresan a la fuente.
Por ejemplo:
":<>'\t{}banhammer/
Siempre uso algo para identificar mi entrada de cadena, por lo que en el caso anterior es banhammer
, por lo que es fácil de buscar a través de la fuente.
También, tenga en cuenta el \t
allí? Esto se debe a que muchas aplicaciones en la web usarán (quitar | agregar) cslashes (al menos en PHP) que si se usan incorrectamente pueden hacer que XSS se ejecute correctamente.
Lea otras preguntas en las etiquetas web-application xss