Injecção de comando OS

o que é injecção de comando OS?

uma injeção de comando do sistema operacional é uma vulnerabilidade de segurança web que permite a execução de comandos de sistema operacional não autorizados. Uma vulnerabilidade de injeção de comando do sistema operacional surge quando uma aplicação web envia comandos de sistema não-filtrados para serem executados. Devido à insuficiente validação de entrada, um atacante poderia injetar seus próprios comandos para serem operados no nível do shell. O atacante introduz comandos do sistema operacional através de dados fornecidos pelo usuário, tais como cookies, formulários ou cabeçalhos HTTP.

This is a dangerous vulnerability as the attacker-supplied OS commands are usually executed with the privileges of the vulnerable application. Portanto, um atacante poderia ganhar o controle completo do hospedeiro Operacional syos injeção de comandostem comprometendo a aplicação e todos os seus dados.

ao contrário de vulnerabilidades de injeção de código que existem quando um atacante pode submeter entrada executável a um programa e engana o software para executar essa entrada. Uma vulnerabilidade de injeção de comando explora as fraquezas de um sistema desprotegido que permite a execução de comandos arbitrários sem ter que injetar código. Ambas as vulnerabilidades resultam da falta de validação adequada dos dados de entrada/saída.

Comandos Úteis

Abaixo estão alguns comandos úteis de que pode dar-lhe mais informações sobre o sistema operacional que você está atacando

Finalidade de comando

Linux

Windows

Nome do utilizador actual

whoami

whoami

sistema Operacional

uname-a

ver

configuração de Rede

ifconfig

ipconfig /all

ligações de Rede

netstat-um

netstat-um

processos em Execução

ps-ef

lista de tarefas

Formas de injetar OS comandos

para testar seu aplicativo para um comando vulnerabilidade de injeção tente usar metacaracteres que enablecommands ser encadeadas. Se você é capaz de executar o seu próprio comando, então a aplicação web é vulnerável. O seguinte comando separadores de trabalho no Windows e sistemas baseados em Unix:

  • &
  • &&
  • |
  • ||

Outro comando de injeção de cargas incluir o comando ping abaixo o que vai desencadear um atraso de tempo, permitindo que você confirme o que o comando foi executado com base no tempo que o aplicativo demora para responder. O comando abaixo levará 10 segundos para responder.

& ping-c 10 127.0.0.1 &

os atacantes também podem confirmar uma vulnerabilidade do comando OS utilizando o comando nslookup para um domínio que eles controlam. Se o olhar para cima ocorrer, eles sabem que a injecção de comando foi bem sucedida.

vários outros comandos para testar a sua aplicação :

php-v dá-lhe a versão PHP a correr no servidor de aplicações web.

&&cat / etc/passwddisplays all the users on the backend Linux Server

/etc / shadowdisslays all hashed passwords but only if you are running with root privileges.

como prevenir ataques de injeção de comando do sistema operacional

  1. opção de Defesa 1: Evite chamar comandos do sistema operacional diretamente-evite chamar comandos do sistema operacional diretamente. As funções de biblioteca embutidas são uma boa alternativa aos comandos do sistema operacional.
  2. Defense option 2: Escape values added to OS commands specific to each OS – For exampleescapeshellcmd() in PHP.
  3. opção de Defesa 3: parametrização em conjunção com a validação da entrada – se fornecido pelo Utilizador não puder ser evitada a comparação e a validação da entrada deverá estar em uso.

Deixe uma resposta

O seu endereço de email não será publicado.