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