Code Injection
PHP
XOR
Podemos inserir caracteres utilizando XOR. Por exemplo, caractere M
, é o equivalente a expressão "0"^"}"
. Então, para escrevermos $_GET
, podemos utilizar a seguinte expressão:
Inserindo Comandos via Wrappers
Executando comandos
Ocultando Caracteres
Perceba que, se ler o conteúdo do arquivo gerado com o comando acima, você irá ver somente <?='PHP Test';?>
, porém com o strings
ou algum editor como o Sublime Text
, é possível ver o seu conteúdo completo.
phar
Sempre que ver algum arquivo sendo chamado utilizando o phar, por exemplo md5_file('phar:///path/to/file');
, é possível inserirmos um arquivo phar malicioso.
Python
Inject
Caso seja possível inserir comandos em Python via web, podemos utilizar o comando abaixo. Caso o comando tenha sucesso, será retornado 0
e caso tenha falha, retornará algum número como 32512
, significando que o processo retornou 127
(comando não encontrado).
ATENÇÃO: O módulo os
só irá funcionar, caso o alvo já tenha realizado a sua importação com o comando import os
. Caso receba erro, utilize __import__('os').system('<command>')
ao invés de os.system('<command>')
Caso queria ver o retorno do código, podemos utilizar o seguinte comando:
Tente também inserir comandos que estejam com algum encode, por exemplo, base64
. Assim podemos inserir comandos no seguinte formato:
Pegando Bash
KShell
Caso esteja preso em um kshell
(shell com comandos limitados), utilize o comando abaixo para sair da shell limitada e acessar como usuário comum:
Caso não dê certo, digite os comandos abaixo:
Pickles
LUA
Ruby
Execução Única
REPL
Execute o comando abaixo
Com isso irá abrir uma sessão no terminal semelhante a isso irb(main):001:0>
.
Agora execute comandos em volta do caractere `
, exemplo:
Perl
Lendo Arquivos do SO
ATENÇÃO:
Atente-se as aspas. No comando acima, utilizamos aspas simples, pois se usarmos aspas duplas, irá nos dar um erro de acesso (caso esteja usando um sudo
para utilizar privilégios de outro usuário). Isso acontece devido a ordem de execução do comando.
NodeJS
Last updated