NT-2026.10.05 DOSSIÊ PENTEST
BURP SUITE: BYPASS DE VALIDAÇÃO FRACA DE INPUT PARA UPLOAD DE MALWARE
Walkthrough técnico de bypass de validação client-side de upload de arquivos usando Burp Suite — interceptação de requisição POST, manipulação de Content-Type (text/x-python → image/jpeg) e upload de script malicioso em DVWA security medium.

Introdução e Contexto de Validação de Input
Em geral, a solução para muitos ataques de injeção em aplicações web é a ‘Validação de Input’. A validação de input garante que apenas o tipo de entrada para o qual a aplicação foi desenvolvida seja aceito, e não comandos maliciosos ou scripts disfarçados de dados. Algumas aplicações permitem ou até incentivam o upload de foto, avatar ou outra representação (pense em Facebook, Twitter, LinkedIn, outras redes sociais ou site da sua empresa/escola). O que impede atacantes de simplesmente fazer upload de um script malicioso? Geralmente a resposta é verificar e validar o tipo de entrada antes de permitir o upload. Em um post anterior, conseguimos fazer upload de um shell malicioso no site DVWA quando não havia validação de input. Neste tutorial, faremos bypass de validação fraca de input e ainda faremos upload de um script malicioso.

Ambiente: Kali Linux, Burp Suite e OWASP BWA
Para começar, inicie seu Kali Linux e abra o Burp Suite. Configure o Burp Suite para interceptar suas requisições e respostas do navegador. Configure também o proxy no navegador (Mozilla Firefox) para usar o Burp Suite como proxy.



Configuração do DVWA Security Medium
Agora, inicie o servidor OWASP Broken Web App (BWA) e acesse a aplicação DVWA e faça login (admin/password). Após logar no DVWA, vá ao botão no canto inferior esquerdo e defina a segurança do DVWA para ‘medium’. Certifique-se de que a interceptação está ligada no proxy do Burp Suite.


Tentativa de Upload de Arquivo Malicioso
Clique no botão de upload. Imagine que esta é sua página do LinkedIn ou perfil do Twitter — em ambos os casos, espera-se que você faça upload de uma foto ou avatar. O aplicativo diz ‘Choose an image to upload:’. Em vez de uma imagem, tente fazer upload de um script Python malicioso. Criei um arquivo chamado ‘malicious_python_script.py’ e tentei fazer upload. O aplicativo rejeitou nosso script malicioso porque usa validação de input para assegurar que o arquivo seja uma imagem. Podemos burlar essa validação?



Interceptação e Análise da Requisição POST no Burp Suite
Vamos ao Burp Suite e olhemos o POST capturado pela interceptação. Nas linhas 19 e 20, ele identificou o nome do arquivo e o tipo como ‘text/x-python’. Muito bom, está correto. O app foi desenhado para permitir apenas upload de imagens e por isso rejeitou nosso arquivo malicioso.

Bypass: Manipulação de Content-Type no Burp Suite
Vamos à requisição POST interceptada e editá-la. A validação de input ocorreu dentro do formulário no client-side. Como interceptamos no caminho para o servidor, podemos manipular o código para refletir que é um arquivo ‘seguro’ antes de enviar ao servidor. Fazemos isso alterando o Content-Type na linha #20 para ‘image/jpeg’. Assim o servidor aceitará o arquivo, acreditando que é um JPEG.

Encaminhamento da Requisição Modificada e Upload Bem-sucedido
Agora, no Burp Suite, encaminhe o POST para o servidor. O arquivo é enviado com sucesso e nosso script Python está pronto para ser executado e fazer seu trabalho malicioso! O arquivo foi enviado com sucesso e nosso script Python está pronto para ser executado.

Conclusão: Limitações da Validação Client-Side
Em geral, validação de input é a resposta para o problema de ataques de injeção em aplicações web. Neste caso, a aplicação web só fazia validação de input no client-side e, portanto, o atacante pode manipular a resposta POST no Burp Suite para editar o tipo de arquivo e fazer o servidor aceitar nosso conteúdo malicioso. Validação server-side robusta (magic bytes, whitelist, antivírus) é indispensável para uploads seguros.