Ao entrar no servidor, deparamo-nos com um servidor de download e upload de ficheiros copyparty
Figura 1: Servidor Copyparty
Figura 2: Descrição do servidor copyparty
Também encontramos rapidamente um ficheiro flag.txt mas infelizmente eramos redirecionados quando tentavamos aceder ao mesmo
Figura 3: Tentativa de aceder à flag
Pesquisamos por vulnerabilidades conhecidas relacionadas ao Copyparty e encontramos o CVE-2023-38501, que detalha uma falha de reflected XSS no software. Essa vulnerabilidade ocorre nos parâmetros de URL ?k304=... e ?setck=..., permitindo a execução de scripts maliciosos. A exploração pode levar a ações não autorizadas, como mover, excluir ou carregar ficheiros utilizando a conta de um usuário que clique num link malicioso. A falha foi corrigida na versão 1.8.7 do Copyparty.
Figura 4: Pesquisa por CVES
Figura 5: Exploit encontrado no exploit-db
Utilizamos o exploit mencionado no Exploit-DB com um payload básico de XSS. Esse teste demonstrou que o servidor era vulnerável.
Figura 6: Ataque para testar o exploit
Com o objetivo de aceder ao conteúdo do ficheiro flag.txt, substituímos o payload inicial por um fetch em JavaScript que realiza uma request ao ficheiro flag.txt. O código utilizado foi o seguinte:
fetch('/flag.txt')
.then(response => response.text())
.then(data => alert(data))
.catch(error => console.error('Request failed:', error));
Após realizar o URL encoding no payload, inserimos o código modificado no URL. Quando o payload foi executado no browser, a flag foi exibida com sucesso.
Figura 7: Ataque para obter a flag
A vulnerabilidade explorada neste desafio evidencia os riscos de não validar e sanitizar inputs de utilizadores, especialmente em aplicações que lidam com arquivos e permissões. Através do CVE-2023-38501, foi possível contornar as restrições de acesso com um ataque de reflected XSS e obter o conteúdo do ficheiro flag.txt.