Quali sono gli attacchi Web che gli utenti possono eseguire sul tuo server?

10

Ho sentito storie su server e siti Web insicuri in cui persone (o bot) si intromettono ed eseguono il loro codice sul server.

La mia domanda è: com'è possibile? Ho sentito parlare di persone che inseriscono il proprio javascript su siti Web che rubano cookie e tecniche su come farlo. Non ho mai sentito parlare di attacchi effettivi per eseguire codice. So che le iniezioni di mysql possono essere utilizzate per rubare dati e inserire il codice javascript sulle pagine. Ma sto ancora avendo problemi a pensare a come la debolezza di un sito può compromettere un server. Com'è possibile?

    
posta 14.11.2011 - 15:24
fonte

6 risposte

10

Per poter eseguire il codice sul tuo server, potrei:

  • Carica un file utilizzando uno dei tuoi moduli web. Ma invece di un'immagine, carico un file PHP. Quindi posso eseguire il codice nel file PHP con i privilegi del processo webserver.
  • Sfruttare un buffer overflow per ottenere una shell sul server.
  • Accedi come amministratore e carica il codice:
    • Social engineer per la password di uno dei tuoi amministratori.
    • Utilizza un attacco XSS per rubare i cookie di sessione da uno dei tuoi amministratori.
    • Utilizzare un attacco di SQL injection per leggere la tabella delle password, quindi:
      • legge le password che hai memorizzato in chiaro o
      • esegui un programma per indovinare la password per decifrare le tue password scelte male.
    • Utilizza un attacco directory traversal per ottenere una copia del tuo file di password di sistema e utilizzare uno dei metodi di cracking della password sopra menzionati.
    • Rubare fisicamente un nastro di backup per ottenere una copia del database e utilizzare uno dei metodi di cracking della password sopra menzionati.
  • Utilizza una dozzina di metodi per rilevare una macchina sulla tua intranet e utilizzarla come piattaforma per caricare il codice sul server web.
  • Mi trovo fisicamente davanti alla console del tuo server.

Nota che non devo necessariamente attaccare la tua app. Ad esempio, posso attaccare le vulnerabilità del tuo server web, sistema operativo o persone.

    
risposta data 14.11.2011 - 23:33
fonte
9

La più semplice sarebbe una vulnerabilità di caricamento eseguibile. Lo scenario di installazione sarebbe che un sito consente agli utenti di caricare file sul sito, ad esempio immagini che gli utenti potrebbero voler allegare ai post del forum che creano. Se non ci sono misure di sicurezza e i file che gli utenti sono autorizzati a caricare live in una posizione eseguibile accessibile al Web, esiste la possibilità per un utente malintenzionato di caricare qualcosa come un file * .php o * .asp , con codice che verrà eseguito quando l'utente naviga nel file caricato.

    
risposta data 14.11.2011 - 15:53
fonte
4

Gli attacchi di alto valore sono quelli che ottengono una shell di root su un server. A quel punto puoi eseguire qualsiasi cosa tu voglia.

Un passo indietro è un attacco che utilizza la funzionalità all'interno di un'app Web per ottenere una shell, che può essere convertita in root. A volte questa escalation avviene attraverso il caricamento di un eseguibile nello spazio utente che ottiene il privilegio attraverso un exploit.

    
risposta data 14.11.2011 - 16:01
fonte
4

Tre attacchi webserver molto comuni sarebbero gli attacchi Cross-Site Scripting e Iniezione SQL attacchi e Directory Traversal Attacks ( forse il più comune).

Tutti questi sono molto simili e se hanno successo sono il risultato di una scarsa convalida dell'input.

Anche se questi potrebbero non mettere a rischio lo stesso server fisico, ci sono cose più dolorose che perdere un server. Come perdere un database pieno di informazioni sull'elaborazione finanziaria o PII.

La convalida dell'input è probabilmente la sola cosa più importante da comprendere per gli sviluppatori di applicazioni Web.

Anche un'app molto semplice, come uno script che rende i file disponibili per la visualizzazione o il download può metterti a rischio se stai passando file con un percorso a uno script per causare il download o la visualizzazione del file e fare qualsiasi sanificazione sui percorsi per garantire, ad esempio, che siano relativi, e all'interno di DOCUMENT_ROOT, quindi si potrebbe finire con un server web che sarebbe abbastanza felice di visualizzare il file / etc / shadow, o la configurazione di iptables , o qualsiasi altra cosa che risiede in un file sul tuo server.

    
risposta data 14.11.2011 - 21:03
fonte
2

Puoi anche pensare a qualsiasi exploit del codice shell. Pensa che il server web possa avere qualche vulnerabilità che consente a qualcuno di causare un overflow del buffer e, utilizzandolo, può iniettare del codice che gli consentirà di accedere alla shell.

Poiché il webserver è una sola applicazione, potrebbe essere vulnerabile a questo tipo di attacco. Ad esempio, in questo thread qualcuno si lamenta di essere stato attaccato da uno shellcode tramite il suo server web.

    
risposta data 14.11.2011 - 18:57
fonte
1

Ecco un ottimo libro per te " Hacking: The Next Generation " . Illustra molti esempi di come vengono eseguiti gli attacchi. Se il server ospita un'applicazione che non limita i tipi di file caricati, ad esempio, un utente malintenzionato può caricare una shell (ce ne sono molti di questi) ed eseguirla su http. La maggior parte di queste shell consente l'escalation dei privilegi. Pertanto, se il server non viene aggiornato / aggiornato, l'utente malintenzionato avrà accesso root sul server. Ho visto questo accadere molte volte, principalmente in un web hosting economico.

    
risposta data 14.11.2011 - 16:28
fonte

Leggi altre domande sui tag