BBLabs - Reflection | (Difficulty Easy) - XSS
Writeup del laboratorio de dificultad fácil Reflection de la página https://bugbountylabs.com/
Lab 1 - Reflected XSS
Descripción: En este laboratorio podrás introducir un payload XSS y ver cómo se refleja en la misma página.
Comienzo introduciendo un texto de prueba sencillo para observar el comportamiento de la página, consigo observar que el contenido que se introduce se ve reflejado en la web
Intento inyectar una etiqueta HTML, por ejemplo, un título <h1>
de forma sencilla, puediendo ver que soy capaz de alterar el texto y hacer que sea un titulo, consiguiendo realizar el HTML Injection de forma satisfactoria.
Payload
1
<h1>HTML Injection</h1>
Pudiendo haber realizar una inyección de código HTML lo suyo sería intentar inyectar código JavaScript, utilizando la etiqueta <script>
no funciona, por lo que una alternativa de tantas es utilizar la etiqueta <img>
y apuntar a una imagen inexistente, luego por ultimo indicar que cuando se produzca un error se ejecute el código JavaScript que deseemos.
Payload
1
<img src=x onerror=alert('xss')>
Lab2 - Stored XSS
Descripción: Este laboratorio te permite practicar inyecciones de script que se almacenan y se muestran a posteriores visitantes.
Comienzo introduciendo un texto de prueba sencillo para observar el comportamiento de la página, consigo observar que el contenido que se introduce se almacena en la web en la web
Intento inyectar una etiqueta HTML, por ejemplo, un título <h1>
de forma sencilla, puediendo ver que soy capaz de alterar el texto y hacer que sea un titulo, consiguiendo realizar el HTML Injection de forma satisfactoria.
Payload
1
<h1>HTML Injection</h1>
Pudiendo haber realizar una inyección de código HTML lo suyo sería intentar inyectar código JavaScript, utilizando la etiqueta <script>
no funciona, por lo que una alternativa de tantas es utilizar la etiqueta <img>
y apuntar a una imagen inexistente, luego por ultimo indicar que cuando se produzca un error se ejecute el código JavaScript que deseemos, al ser un XSS almacenado cada vez que un usuario acceda a la página se le ejecutará el código malicioso JS
Payload
1
<img src=x onerror=alert('xss')>
Lab 3 - Dropdown XSS
Descripción: Selecciona alguna opción en los menús desplegables y haz clic en Enviar. Luego, puedes interceptar la petición con Burp Suite (u otra herramienta) y modificar los valores enviados para intentar inyectar tu payload.
Comienzo seleccionando diferentes opciones disponibles de los dropdowns, interceptando la petición con BurpSuite y enviándola al Repeater
Modifico los tres valores que se tramitan por GET opcion1, opcion2, opcion3
e intento inyectar código HTML, por ejemplo, un título <h1>
, consigo observar que se refleja el código inyectado
Payload
1
/laboratorio3/?opcion1=<h1>HTML+Injection</h1>&opcion2=<h1>HTML+Injection</h1>&opcion3=<h1>HTML+Injection</h1>
Inyecto una etiqueta <img>
en los tres parámetros GET que apunta hacia una imagen inexistente, indicando que cuando se produzca el error se ejecuta un código JavaScript, consiguiendo ejecutar el código de forma exitosa.
Payload
1
/laboratorio3/?opcion1=<img+src=x+onerror=alert('xss')>&opcion2=<img+src=x+onerror=alert('xss')>&opcion3=<img+src=x+onerror=alert('xss')>
Lab 4 - Reflected XSS through the URL
Descripción: Introduce un parámetro ?data= en la URL para reflejar su contenido en la página.
Intento inyectar código HTML, por ejemplo, un título <h1>
, a través del parámetro GET data
, consigo observar que se refleja el código inyectado
Payload
1
/laboratorio4/?data=<h1>HTML+Injection</h1>
Viendo que se interpreta código HTML, inyecto una etiqueta <img>
en el parámetro GET que apunta hacia una imagen inexistente, indicando que cuando se produzca el error se ejecute un código JavaScript, consiguiendo ejecutar el código de forma exitosa.
Payload
1
/laboratorio4/?data=%3Cimg+src=x+onerror=alert(%27xss%27)%3E