PortSwigger · Cross-Site Scripting (XSS)
Teoría completa en Hacking web → XSS.
Labs completados
| # | Lab | Tipo |
|---|---|---|
| 1 | Reflected XSS into HTML context with nothing encoded | Reflected XSS |
| 2 | Stored XSS into HTML context with nothing encoded | Stored XSS |
| 3 | DOM XSS in document.write sink using source location.search | DOM-based XSS |
Lo que me llevo
- Reflected: el buscador devuelve lo que escribo tal cual, así que
<script>alert(1)</script>en la búsqueda se ejecuta. - Stored: el mismo payload en un comentario del blog se guarda y se ejecuta a cualquiera que abra el post.
- DOM-based: el JavaScript de la página coge
location.searchy lo escribe condocument.writedentro de un atributosrc. Cierro el atributo y la etiqueta:"><svg onload=alert(1)>.
La clave en los tres: mirar en qué contexto acaba mi texto (HTML, atributo, JavaScript) y escapar de él.
