domenica 31 luglio 2011

applicazione attacco, Command Injection

Questa Tecnica di hacking permette di manipolare funzioni esistenti nei linguaggi di programmazione per le applicazioni web in modo  da portare a compimento attacchi, agendo sul file System  del web server da remoto permettendo quindi l’esecuzione di comandi arbitrari. Letteralmente si tratta di iniezioni  di comandi inviati in input  alle applicazioni web.
Molte applicazioni web usano le caratteristiche del sistema operativo e programmi esterni per visualizzare il contenuto di una directory, eliminare, modificare e creare file sul server, inviare e-email, eseguire comandi  ad esempio ping, manipolare immagini, whois ecc. Queste funzioni, rendono i siti web  più flessibili appoggiandosi a eseguibili di sistema preesistenti, tuttavia bisogna porre molta attenzione nel loro utilizzo per non permettere di eseguire comandi arbitrari.Quando un'applicazione Web invia le informazioni con una richiesta http attraverso un componente, l’input, deve essere attentamente controllato, altrimenti, un hacker potrebbe iniettare caratteri speciali e comandi ostili  che verranno poi eseguiti dal sistema

Alcuni comandi che possono essere vulnerabili all’attacco di command injection sono:

PHP
  • require()
  • include()
  • eval()
  • preg_replace() (with /e modifier)
  • exec()
  • passthru()
  • `` (backticks)
  • system()
  • popen()
Perl
  • open()
  • sysopen()
  • glob()
  • system()
  • '' (backticks)
  • eval()
Java(Servlets, JSP's)
  • System.* (especially System.Runtime)
C & C++
  • system()
  • exec**()
  • strcpy
  • strcat
  • sprintf
  • vsprintf
  • gets
  • strlen
  • scanf
  • fscanf
  • sscanf
  • vscanf
  • vsscanf
  • vfscanf
  • realpath
  • getopt
  • getpass
  • streadd
  • strecpy
  • strtrns
Questi tipi di attacchi vengono spesso utilizzati per:
  • accedere al sistema operativo
  • eseguire comandi che utilizzando perl php ecc.
  • modificare i privilegi di accesso
  • modificando il file system alcune volte questo può essere sostituito o eliminato
  • modificare il comportamento delle applicazioni
Per attaccare con questa tecnica occorre iniettare codice nelle query string nei cookie e nei form
Un esempio di Command injection potrebbe essere l’esecuzione del comando “netstat -a”
che visualizza le porte aperte del server web esso può essere eseguito da remoto semplicemente iniettandolo via url nell'applicazione vulnerabile
Questi attacchi possono essere molto facili da scoprire e sfruttare. Per determinare se la nostra applicazione web è vulnerabile occorre cercare e filtrare tutte le chiamate alle risorse esterne presenti nelle pagine web del nostro sito è importante anche settare i giusti privilegi sul web server per l’esecuzione di  particolari comandi .
Per ovvie ragioni non scendo nei dettagli dell'attacco, questo testo a solo l' obiettivo di mettere al corrente i web master dei pericoli che si corrono non proteggendo adeguatamente le applicazioni web

Nessun commento:

Posta un commento