Reflected DOM XSS

Objetivo

Execução

Acessando o blog é possível realizar uma consulta para encontrar postagens

Analisando as requisições é possível ver que a aplicação realiza duas requisições com o valor passado, a primeira somente passando o parâmetro da pesquisa

A segunda passando o parâmetro pra uma função, essa função retorna o resultado da pesquisa e esse resultado é refletido na página posteriormente

Na primeira requisição é possível encontrar o arquivo Javascript que contem a função que realiza a pesquisa

Analisando o conteúdo desse arquivo, é possível descobrir que o valor enviado é recebido em uma função “eval” e depois o valor é refletido em uma tag “h1”

Sabendo do funcionamento da função, realizei uma nova consulta, dessa vez enviando um payload para que a função “alert” fosse refletida na página

Dessa forma o código foi executado sem nenhum problema

E assim foi possível resolver o lab

Reflected XSS into a JavaScript string with angle brackets HTML encoded

Objetivo

Execução

Acessando o site do blog, é possível encontrar um campo para realizar pesquisa

Então, realizei uma pesquisa para entender como a aplicação se comporta, e interceptei essa requisição com o burp

Analisando a requisição, foi possível descobrir que o valor enviado através da consulta é refletido em dois lugares na página

O segundo lugar, está dentro de uma tag “script”. Então enviei uma nova consulta, dessa vez passando a função alert

Como é possível ver na resposta da requisição, a função foi incorporada dentro da tag “script”, novamente voltei ao blog e enviei o novo payload, e o código foi executado

Dessa forma, foi possível resolver o desafio

Reflected XSS into attribute with angle brackets HTML-encoded

Objetivo

Execução

Acessando o blog é possível encontrar um campo para pesquisa

Então, realizei uma pesquisa para entender como a aplicação funciona

Analisando a requisição, é possível perceber que o valor enviado é refletido em dois lugares na página

Sabendo disso, realizei uma nova requisição, dessa vez enviando o meu payload

Como é possível ver no resultado da requisição, o payload enviado foi refletido dentro da tag input, então retornei para a aplicação e realizei uma nova consulta, passando o mesmo payload e como esperado o código é executado

Dessa forma, foi possível resolver o lab

Stored XSS into anchor href attribute with double quotes HTML-encoded

Objetivo

Execução

Acessando um post do blog, é possível enviar um comentário passando algumas informações

Então, enviei um comentário para entender como a aplicação se comporta, e analisando o resultado é possível ver que o website informado é armazenado dentro de um “href”

Com essa informação, enviei um novo comentário, dessa vez enviado como endereço do site o payload “javascript:alert(0)”

E como é possível ver, o conteúdo do site foi novamente armazenado em um “href”

Com isso, ao clicar no nome do usuário, o código javascript é executado

E dessa forma foi possível resolver o lab