Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PIL-CVE-2017-8291 — CVE-2017-8291 CTF com docker e exemplos | Kitploit
Ferramentas/GitHubGitHub/hkcfs/pil-cve-2017-8291
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFAprendizado e EducaçãoLabs e Prática
GitHubhkcfs/pil-cve-2017-8291

PIL-CVE-2017-8291

CVE-2017-8291 CTF com docker e exemplos

Ver Repositório
1há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Vulnerabilidade de Execução Remota de Comandos no Python PIL (GhostButt)

O módulo PIL (Pillow) para processamento de imagens em Python é afetado pela vulnerabilidade GhostButt (CVE-2017-8291) porque ele chama o GhostScript internamente, resultando em uma vulnerabilidade de execução remota de comandos.

Resumo da Vulnerabilidade

O PIL determina internamente o tipo de imagem com base no cabeçalho da imagem (Magic Bytes). Se for identificado como um arquivo EPS (o cabeçalho é %!PS), ele é distribuído para PIL/EpsImagePlugin.py para processamento.

Neste módulo, o PIL chama o comando gs do sistema, que é o GhostScript, para processar arquivos de imagem:

root@kitploit:~
command = ["gs",
            "-q", # quiet mode
            "-g%dx%d" % size, # set output geometry (pixels)
            "-r%fx%f" % res, # set input DPI (dots per inch)
            "-dBATCH", # exit after processing
            "-dNOPAUSE", # don't pause between pages,
            "-dSAFER", # safe mode
            "-sDEVICE=ppmraw", # ppm driver
            "-sOutputFile=%s" % outfile, # output file
            "-c", "%d %d translate" % (-bbox[0], -bbox[1]),
                                            # adjust for image origin
            "-f", infile, # input file
            ]

# Omit the code to determine whether GhostScript is installed
try:
    with open(os.devnull, 'w+b') as devnull:
        subprocess.check_call(command, stdin=devnull, stdout=devnull)
    im = Image.open(outfile)
Baixar ferramenta

Embora -dSAFER, ou seja, o modo seguro, esteja definido, devido a uma vulnerabilidade de bypass de sandbox no GhostScript (GhostButt CVE-2017-8291), esse modo seguro é contornado e comandos arbitrários podem ser executados.

Além disso, até agora, a versão oficial mais recente do GhostScript 9.21 ainda é afetada por esta vulnerabilidade, portanto, pode-se dizer que, enquanto o GhostScript estiver instalado no sistema operacional, nosso PIL tem uma vulnerabilidade de execução de comandos.

Teste da Vulnerabilidade

Ambiente de operação:

root@kitploit:~
docker-compose up -d

Após a execução, visite http://your-ip:8000/ para ver uma página de upload. A função normal é que enviamos um arquivo PNG, o backend chama o PIL para carregar a imagem e exibe a largura e altura. Mas podemos alterar o sufixo do arquivo EPS com comando executável para PNG para fazer o upload, porque o backend determina o tipo de imagem com base no cabeçalho do arquivo, então a verificação de sufixo é ignorada.

Por exemplo, se enviarmos poc.png, podemos executar touch /tmp/youhavebeenpwned. Altere o comando no POC para um comando reverso para obter um shell: