E ai pessoal, tudo bem com vocês?
Hoje eu trouxe uma prova de conceito de um bug bounty que realizei há alguns meses atrás, trata-se de um Cross-Site Scripting (XSS) Armazenado em um site de empregos.
O site possibilita o envio do nosso currículo em PDF, armazenando em nosso perfil e criando uma página para acessar este CV.
Abaixo explicarei passo a passo como cheguei até essa falha.
1. Criando o arquivo
Primeiro criei um arquivo com a extensão .html.pdf chamado cv_hacker.html.pdf com o seguinte conteúdo:
%PDF-1. <html> <script>alert(document.domain)</script> </html>
Esse %PDF-1. é o cabeçalho para efetuar o bypass no upload do CV.
2. Efetuando o upload do arquivo
Com o proxy do Burp Suite habilitado, submeti o arquivo no site.
Mudei o Content-Type para text/html.
3. XSS adquirido!!!
O arquivo foi armazenado com sucesso!!!
Qualquer pessoa que clicar nesse CV, dentro desse perfil, vai dar de cara com um alert(document.domain).
4. Bounty aceito!!!
Demorou, mas foi aceito 😀
É isso pessoal, espero que tenham gostado.
Qualquer dúvida estou à disposição, abraço!