Command Injection é uma vulnerabilidade que ocorre quando um atacante consegue executar comandos arbitrários no sistema operacional através de uma aplicação vulnerável. Isso acontece quando a aplicação passa dados não confiáveis diretamente para um interpretador de comandos.
A vulnerabilidade ocorre quando a aplicação aceita entrada do usuário e a utiliza para construir comandos do sistema operacional sem validação adequada.
A aplicação constrói um comando do sistema operacional usando a entrada do usuário. Se a entrada não for tratada corretamente, comandos maliciosos podem ser inseridos.
import os
user_input = "diretorio"
os.system("ls " + user_input)
Se o atacante inserir diretorio; rm -rf /
, o comando se torna:
ls diretorio; rm -rf /
O sistema operacional executa o comando modificado, que pode resultar em execução de comandos arbitrários, comprometendo a segurança do sistema.
ls
: Lista arquivos e diretórios.cat
: Exibe o conteúdo de arquivos.grep
: Pesquisa por padrões em arquivos.find
: Encontra arquivos e diretórios.nc
(Netcat): Ferramenta de rede para leitura e escrita em conexões de rede.curl
ouwget
: Ferramentas para transferir dados de ou para um servidor.nmap
: Ferramenta de varredura de rede.ssh
: Conecta-se a um servidor remoto via SSH.tar
ezip
: Ferramentas para compactar e descompactar arquivos.