Più persone hanno accesso a Internet che mai. Ciò ha spinto molte organizzazioni a sviluppare applicazioni basate sul Web che gli utenti possono utilizzare online per interagire con l'organizzazione. Il codice scritto male per le applicazioni web può essere sfruttato per ottenere l'accesso non autorizzato a dati sensibili e server web.
In questo tutorial imparerai come hackerare i siti web e ti presenteremo le tecniche di hacking delle applicazioni web e le contromisure che puoi mettere in atto per proteggerti da tali attacchi .
Argomenti trattati in questo tutorial
- Cos'è un'applicazione web? Cosa sono le minacce Web?
- Come proteggere il tuo sito web dagli hack?
- Trucchi per hackerare un sito web: hackera un sito web online!
Cos'è un'applicazione web? Cosa sono le minacce Web?
Un'applicazione web (anche nota come sito web) è un'applicazione basata sul modello client-server. Il server fornisce l'accesso al database e la logica aziendale. È ospitato su un server web. L'applicazione client viene eseguita sul browser Web del client. Le applicazioni Web sono solitamente scritte in linguaggi come Java, C # e VB.Net, PHP, ColdFusion Markup Language, ecc. I motori di database utilizzati nelle applicazioni Web includono MySQL, MS SQL Server, PostgreSQL, SQLite, ecc.
La maggior parte delle applicazioni Web sono ospitate su server pubblici accessibili tramite Internet. Questo li rende vulnerabili agli attacchi a causa della facile accessibilità. Le seguenti sono minacce comuni alle applicazioni Web.
- SQL Injection : l'obiettivo di questa minaccia potrebbe essere quello di aggirare gli algoritmi di accesso, sabotare i dati, ecc.
- Attacchi Denial of Service : l'obiettivo di questa minaccia potrebbe essere negare agli utenti legittimi l'accesso alla risorsa
- Cross Site Scripting XSS : l'obiettivo di questa minaccia potrebbe essere quello di iniettare codice che può essere eseguito sul browser lato client.
- Avvelenamento da cookie / sessioni : l'obiettivo di questa minaccia è modificare i cookie / i dati di sessione da parte di un utente malintenzionato per ottenere un accesso non autorizzato.
- Manomissione del modulo : l'obiettivo di questa minaccia è modificare i dati del modulo come i prezzi nelle applicazioni di e-commerce in modo che l'attaccante possa ottenere articoli a prezzi ridotti.
- Iniezione di codice : l'obiettivo di questa minaccia è iniettare codice come PHP, Python, ecc. Che può essere eseguito sul server. Il codice può installare backdoor, rivelare informazioni sensibili, ecc.
- Defacement : l'obiettivo di questa minaccia è modificare la pagina visualizzata su un sito Web e reindirizzare tutte le richieste di pagina a una singola pagina che contiene il messaggio dell'aggressore.
Come proteggere il tuo sito web dagli hack?
Un'organizzazione può adottare la seguente politica per proteggersi dagli attacchi al server web.
- SQL Injection : la sanificazione e la convalida dei parametri utente prima di inviarli al database per l'elaborazione può aiutare a ridurre le possibilità di essere attaccati tramite SQL Injection. I motori di database come MS SQL Server, MySQL, ecc. Supportano parametri e istruzioni preparate. Sono molto più sicure delle tradizionali istruzioni SQL
- Attacchi Denial of Service: i firewall possono essere utilizzati per eliminare il traffico da indirizzi IP sospetti se l'attacco è un semplice DoS. Una corretta configurazione delle reti e del sistema di rilevamento delle intrusioni può anche aiutare a ridurre le possibilità che un attacco DoS abbia successo.
- Cross Site Scripting: la convalida e la sanificazione di intestazioni, parametri passati tramite URL, parametri del modulo e valori nascosti possono aiutare a ridurre gli attacchi XSS.
- Cookie / Session Poisoning - questo può essere prevenuto crittografando il contenuto dei cookie, facendo scadere i cookie dopo un po 'di tempo, associando i cookie con l'indirizzo IP del client che è stato utilizzato per crearli.
- Tempra del modulo: questo può essere evitato convalidando e verificando l'input dell'utente prima di elaborarlo.
- Iniezione di codice: questo può essere evitato trattando tutti i parametri come dati anziché come codice eseguibile. La sanitizzazione e la convalida possono essere utilizzate per implementare questo.
- Defacement: una buona politica di sicurezza per lo sviluppo di applicazioni Web dovrebbe garantire che sigilli le vulnerabilità comunemente utilizzate per accedere al server Web. Può trattarsi di una corretta configurazione del sistema operativo, del software del server web e delle migliori pratiche di sicurezza durante lo sviluppo di applicazioni web.
Trucchi per hackerare un sito Web: hackerare un sito Web online
In questo scenario pratico di hacking del sito Web, dirotteremo la sessione utente dell'applicazione Web situata su www.techpanda.org. Useremo il cross site scripting per leggere l'ID della sessione del cookie, quindi lo useremo per impersonare una sessione utente legittima.
Il presupposto è che l'attaccante abbia accesso all'applicazione web e vorrebbe dirottare le sessioni di altri utenti che utilizzano la stessa applicazione. L'obiettivo di questo attacco potrebbe essere quello di ottenere l'accesso come amministratore all'applicazione Web supponendo che l'account di accesso dell'aggressore sia limitato.
Iniziare
- Apri http://www.techpanda.org/
- Per scopi pratici, si consiglia vivamente di accedere utilizzando SQL Injection. Fare riferimento a questo articolo per ulteriori informazioni su come farlo.
- L'email di accesso è Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo., La password è Password2010
- Se hai effettuato l'accesso con successo, otterrai la seguente dashboard
- Fare clic su Aggiungi nuovo contatto
- Immettere quanto segue come nome
QUI,
Il codice precedente utilizza JavaScript . Aggiunge un collegamento ipertestuale con un evento onclick . Quando l'utente ignaro fa clic sul collegamento, l'evento recupera l'ID della sessione del cookie PHP e lo invia alla pagina snatch_sess_id.php insieme all'ID della sessione nell'URL
- Immettere i dettagli rimanenti come mostrato di seguito
- Fare clic su Salva modifiche
- La tua dashboard apparirà ora come la seguente schermata
- Poiché il codice cross site script è memorizzato nel database, verrà caricato ogni volta che gli utenti con diritti di accesso effettuano il login
- Supponiamo che l'amministratore acceda e faccia clic sul collegamento ipertestuale che dice Dark
- Otterrà la finestra con l'ID di sessione visualizzato nell'URL
Nota : lo script potrebbe inviare il valore a un server remoto in cui è memorizzato PHPSESSID, quindi l'utente viene reindirizzato al sito Web come se non fosse successo nulla.
Nota : il valore che ottieni potrebbe essere diverso da quello in questo tutorial sull'hacking di pagine web, ma il concetto è lo stesso
Rappresentazione della sessione utilizzando Firefox e il componente aggiuntivo Tamper Data
Il diagramma di flusso seguente mostra i passaggi da eseguire per completare questo esercizio.
- Avrai bisogno del browser web Firefox per questa sezione e del componente aggiuntivo Tamper Data
- Apri Firefox e installa l'aggiunta come mostrato negli schemi seguenti
- Cerca i dati di manomissione, quindi fai clic su Installa come mostrato sopra
- Fare clic su Accetta e installa ...
- Fare clic su Riavvia ora al termine dell'installazione
- Abilita la barra dei menu in Firefox se non viene visualizzata
- Fare clic sul menu Strumenti, quindi selezionare Dati manomissione come mostrato di seguito
- Otterrai la seguente finestra. Nota: se Windows non è vuoto, premi il pulsante Cancella
- Fare clic sul menu Avvia Tamper
- Torna al browser web Firefox, digita http://www.techpanda.org/dashboard.php quindi premi il tasto Invio per caricare la pagina
- Otterrai il seguente pop-up da Tamper Data
- La finestra a comparsa ha tre (3) opzioni. L'opzione Tamper consente di modificare le informazioni dell'intestazione HTTP prima che vengano inviate al server .
- Cliccaci sopra
- Otterrai la seguente finestra
- Copia l'ID di sessione PHP che hai copiato dall'URL di attacco e incollalo dopo il segno di uguale. Il tuo valore dovrebbe ora assomigliare a questo
PHPSESSID = 2DVLTIPP2N8LDBN11B2RA76LM2
- Fare clic sul pulsante OK
- Verrà nuovamente visualizzata la finestra popup dei dati di manomissione
- Deseleziona la casella di controllo che chiede Continuare a manomettere?
- Al termine, fai clic sul pulsante di invio
- Dovresti essere in grado di vedere la dashboard come mostrato di seguito
Nota : non abbiamo effettuato l'accesso, abbiamo impersonato una sessione di accesso utilizzando il valore PHPSESSID che abbiamo recuperato utilizzando lo scripting cross-site
Sommario
- Un'applicazione web si basa sul modello client-server. Il lato client utilizza il browser web per accedere alle risorse sul server.
- Le applicazioni Web sono generalmente accessibili tramite Internet. Questo li rende vulnerabili agli attacchi.
- Le minacce delle applicazioni Web includono SQL Injection, Code Injection, XSS, Defacement, Cookie poisoning, ecc.
- Una buona politica di sicurezza durante lo sviluppo di applicazioni web può contribuire a renderle sicure.