OS Command Injection

Che cos’è OS command injection?

Un’iniezione di comandi del sistema operativo è una vulnerabilità di sicurezza Web che consente l’esecuzione di comandi non autorizzati del sistema operativo. Una vulnerabilità di iniezione del comando del sistema operativo si verifica quando un’applicazione Web invia comandi di sistema non sterilizzati e non filtrati da eseguire. A causa della convalida di input insufficiente, un utente malintenzionato potrebbe iniettare i propri comandi da utilizzare a livello di shell. L’attaccante introduce comandi del sistema operativo tramite dati forniti dall’utente come cookie, moduli o intestazioni HTTP.

Questa è una vulnerabilità pericolosa in quanto i comandi del sistema operativo forniti dall’attaccante vengono solitamente eseguiti con i privilegi dell’applicazione vulnerabile. Pertanto, un utente malintenzionato potrebbe ottenere il controllo completo dell’host operativo syOS command injection stem compromettendo l’applicazione e tutti i suoi dati.

A differenza delle vulnerabilità di iniezione del codice che esistono quando un utente malintenzionato può inviare input eseguibili a un programma e ingannare il software per eseguire tale input. Una vulnerabilità command injection sfrutta le debolezze di un sistema non protetto che consente l’esecuzione di comandi arbitrari senza dover iniettare codice. Entrambe le vulnerabilità derivano da una mancanza di una corretta convalida dei dati di input / output.

Comandi Utili

qui di Seguito sono alcuni comandi utili che possono darle ulteriori informazioni sul sistema operativo che si sta attaccando

Scopo del comando

Linux

Windows

Nome dell’utente corrente

whoami

whoami

sistema Operativo

uname-a

ver

configurazione di Rete

ifconfig

ipconfig /all

connessioni di Rete

netstat-an

netstat-an

i processi in Esecuzione

ps -ef

tasklist

Modi di iniezione di comandi OS

al fine di verificare l’applicazione di un comando di iniezione di vulnerabilità provare a usare i metacaratteri che enablecommands concatenate. Se sei in grado di eseguire il tuo comando, l’applicazione Web è vulnerabile. Il comando riportato di seguito separatori di lavoro sia su Windows sia su sistemi Unix-based:

  • &
  • &&
  • |
  • ||

Altro comando di iniezione payload di includere il comando ping seguito, che determinerà un ritardo di tempo, che consente di verificare che il comando è stato eseguito in base al tempo che l’applicazione richiede di rispondere. Il comando seguente impiegherà 10 secondi per restituire una risposta.

& ping-c 10 127.0.0.1 &

Gli aggressori possono anche confermare una vulnerabilità del comando OS utilizzando il comando nslookup per un dominio che controllano. Se si verifica la ricerca, sanno che la loro iniezione di comando ha avuto successo.

Vari altri comandi per testare l’applicazione :

php-v Fornisce la versione di PHP in esecuzione sul server di applicazioni Web.

&&cat / etc / passwddisplega tutti gli utenti sul backend Linux Server

/etc/shadowdisplama tutte le password con hash, ma solo se si esegue con privilegi di root.

Come prevenire gli attacchi di iniezione del comando OS

  1. Opzione di difesa 1: Evitare di chiamare direttamente i comandi del sistema operativo-evitare di chiamare direttamente i comandi del sistema operativo. Le funzioni di libreria integrate sono un’ottima alternativa ai comandi del sistema operativo.
  2. Opzione di difesa 2: valori di escape aggiunti ai comandi del sistema operativo specifici per ciascun sistema operativo, ad esempio escapeshellcmd() in PHP.
  3. Opzione di difesa 3: la parametrizzazione in combinazione con la convalida di input-Ifuser-supplied non può essere evitata.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.