html injection tutorial
Uno sguardo approfondito a HTML Injection:
Per avere una migliore percezione di HTML Injection, in primo luogo dovremmo sapere cos'è l'HTML.
HTML è un linguaggio di markup, in cui tutti gli elementi del sito web sono scritti nei tag. Viene utilizzato principalmente per la creazione di siti Web. Le pagine Web vengono inviate al browser sotto forma di documenti HTML. Quindi quei documenti HTML vengono convertiti in normali siti Web e visualizzati per gli utenti finali.
Questo tutorial ti fornirà una panoramica completa di HTML Injection, i suoi tipi e misure preventive insieme a esempi pratici in termini semplici per una facile comprensione del concetto.
Cosa imparerai:
- Cos'è l'iniezione di HTML?
- Tipi di HTML Injection
- Come viene eseguita l'iniezione di HTML?
- Come eseguire il test contro l'iniezione di HTML?
- Come prevenire l'inserimento di HTML?
- Confronto con altri attacchi
- Conclusione
- Lettura consigliata
Cos'è l'iniezione di HTML?
L'essenza di questo tipo di attacco injection è l'iniezione di codice HTML attraverso le parti vulnerabili del sito web. L'utente dannoso invia codice HTML attraverso qualsiasi campo vulnerabile con lo scopo di modificare il design del sito web o qualsiasi informazione che viene mostrata all'utente.
Nel risultato, l'utente può vedere i dati inviati dall'utente malintenzionato. Pertanto, in generale, HTML Injection è solo l'iniezione di codice del linguaggio di markup al documento della pagina.
I dati inviati durante questo tipo di attacco injection possono essere molto diversi. Possono essere alcuni tag HTML, che visualizzeranno solo le informazioni inviate. Inoltre, può essere l'intero modulo o pagina falsa. Quando si verifica questo attacco, il browser di solito interpreta i dati utente dannosi come legittimi e li visualizza.
Cambiare l'aspetto di un sito web non è l'unico rischio che questo tipo di attacco comporta. È abbastanza simile all'attacco XSS, in cui l'utente malintenzionato ruba le identità di altre persone. Pertanto il furto dell'identità di un'altra persona può avvenire anche durante questo attacco di iniezione.
Tipi di HTML Injection
Questo attacco non sembra essere molto difficile da capire o da eseguire, poiché l'HTML è considerato un linguaggio abbastanza semplice. Tuttavia, esistono diversi modi per eseguire questo tipo di attacco. Possiamo anche distinguere diversi tipi di questa iniezione.
In primo luogo, diversi tipi possono essere ordinati in base ai rischi che comportano.
sleep () c ++
Come accennato, questo attacco injection può essere eseguito con due diversi scopi:
- Per modificare l'aspetto del sito web visualizzato.
- Per rubare l'identità di un'altra persona.
Inoltre, questo attacco di iniezione può essere eseguito attraverso diverse parti del sito Web, ad esempio i campi di input dei dati e il collegamento del sito Web.
Tuttavia, i tipi principali sono:
- Iniezione di HTML memorizzato
- Inserimento HTML riflesso
# 1) Iniezione di HTML memorizzato:
La differenza principale tra questi due tipi di iniezione è che l'attacco di iniezione archiviata si verifica quando il codice HTML dannoso viene salvato nel server Web e viene eseguito ogni volta che l'utente chiama una funzionalità appropriata.
Tuttavia, nel caso di attacco di iniezione riflessa, il codice HTML dannoso non viene archiviato in modo permanente sul server web. L'iniezione riflessa si verifica quando il sito web risponde immediatamente all'input dannoso.
# 2) Inserimento HTML riflesso:
Questo può essere nuovamente suddiviso in più tipi:
- GET riflesso
- POST riflesso
- URL riflesso
L'attacco a iniezione riflessa può essere eseguito in modo diverso in base ai metodi HTTP, ovvero GET e POST. Ricordo che con il metodo POST vengono inviati i dati e con il metodo GET vengono richiesti i dati.
Per sapere quale metodo viene utilizzato per gli elementi del sito web appropriati, possiamo controllare l'origine della pagina.
Per esempio , un tester può controllare il codice sorgente del modulo di accesso e scoprire quale metodo viene utilizzato per esso. Quindi il metodo di inserimento HTML appropriato può essere selezionato di conseguenza.
Iniezione GET riflessa si verifica quando il nostro input viene visualizzato (riflesso) sul sito web. Supponiamo di avere una semplice pagina con un modulo di ricerca, che è vulnerabile a questo attacco. Quindi, se dovessimo digitare un codice HTML, verrà visualizzato sul nostro sito Web e, allo stesso tempo, verrà inserito nel documento HTML.
Ad esempio, inseriamo testo semplice con tag HTML:
Inserimento HTML POST riflesso è un po 'più difficile. Si verifica quando viene inviato un codice HTML dannoso al posto dei parametri del metodo POST corretti.
Per esempio , abbiamo un modulo di accesso, che è vulnerabile agli attacchi HTML. I dati digitati nel modulo di accesso vengono inviati con il metodo POST. Quindi, se dovessimo digitare un codice HTML al posto dei parametri corretti, verrà inviato con il metodo POST e visualizzato sul sito web.
Per eseguire un attacco POST HTML riflesso, si consiglia di utilizzare un plug-in speciale del browser, che falsificherà i dati inviati. Uno di questi è il plugin per Mozilla Firefox 'Tamper Data'. Il plugin acquisisce i dati inviati e consente all'utente di modificarli. Quindi i dati modificati vengono inviati e visualizzati sul sito web.
Per esempio, se utilizziamo un tale plugin, invieremo lo stesso codice HTML oppure cerca il codice del modulo, se desideri provare con qualcosa di più complicato Digita il testo da cercare
Se viene visualizzato un codice HTML salvato da qualche parte, il tester può essere sicuro che questo attacco di iniezione è possibile. Quindi si può provare un codice più complicato - per Esempio , per visualizzare il falso modulo di accesso.
Un'altra soluzione è lo scanner HTML Injection. La scansione automatica contro questo attacco può far risparmiare molto tempo. Vorrei avvisare che non ci sono molti strumenti per testare HTML Injection rispetto ad altri attacchi.
Tuttavia, una possibile soluzione è l'applicazione WAS. WAS può essere definito uno scanner di vulnerabilità piuttosto potente, in quanto testa con i diversi input e non si ferma solo con il primo guasto.
convertitore video gratuito per file di grandi dimensioni
È utile per i test, forse come menzionato nel plugin del browser sopra 'Tamper Data', riceve i dati inviati, consente al tester di modificarli e li invia al browser.
Possiamo anche trovare alcuni strumenti di scansione online, in cui devi solo fornire il link del sito web e verrà eseguita la scansione contro gli attacchi HTML. Al termine del test, verrà visualizzato il riepilogo.
Vorrei commentare che quando si seleziona uno strumento di scansione, dobbiamo prestare attenzione a come analizza i risultati ed è abbastanza accurato o meno.
Tuttavia, va tenuto presente che il test manuale non deve essere dimenticato. In questo modo possiamo essere sicuri di quali input esatti vengono provati e quali risultati esatti stiamo ottenendo. Anche in questo modo è anche più facile analizzare i risultati.
In base alla mia esperienza in una carriera di test del software, vorrei commentare che per entrambe le modalità di test dovremmo avere una buona conoscenza di questo tipo di iniezione. In caso contrario, sarebbe difficile selezionare uno strumento di automazione appropriato e analizzarne i risultati. Inoltre, si consiglia sempre di non dimenticare di eseguire il test manualmente, poiché ci rende solo più sicuri della qualità.
Come prevenire l'inserimento di HTML?
Non ci sono dubbi che la ragione principale di questo attacco sia la disattenzione e la mancanza di conoscenza dello sviluppatore. Questo tipo di attacco injection si verifica quando l'input e l'output non vengono convalidati correttamente. Pertanto la regola principale per prevenire l'attacco HTML è un'appropriata convalida dei dati.
Ogni input deve essere controllato se contiene codice script o codice HTML. Di solito viene verificato se il codice contiene uno script speciale o parentesi HTML -,.
Esistono molte funzioni per verificare se il codice contiene parentesi speciali. La selezione della funzione di controllo dipende dal linguaggio di programmazione che stai utilizzando.
Va ricordato, così buono test di sicurezza fa anche parte della prevenzione. Vorrei prestare attenzione che, poiché l'attacco HTML Injection è molto raro, c'è meno letteratura da imparare e meno scanner da selezionare per i test automatici. Tuttavia, questa parte del test di sicurezza non dovrebbe davvero essere persa, poiché non si sa mai quando potrebbe accadere.
Inoltre, sia lo sviluppatore che il tester dovrebbero avere una buona conoscenza di come viene eseguito questo attacco. Una buona comprensione di questo processo di attacco può aiutare a prevenirlo.
Confronto con altri attacchi
In confronto agli altri possibili attacchi, questo attacco sicuramente non sarà considerato così rischioso come SQL Injection o Attacco JavaScript Injection o anche XSS potrebbe esserlo. Non distruggerà l'intero database né ruberà tutti i dati dal database. Tuttavia, non dovrebbe essere considerato insignificante.
Come accennato in precedenza, lo scopo principale di questo tipo di iniezione è modificare l'aspetto del sito Web visualizzato con uno scopo dannoso, visualizzando le informazioni o i dati inviati all'utente finale. Questi rischi possono essere considerati meno importanti.
Tuttavia, la modifica dell'aspetto del sito web potrebbe costare la reputazione della tua azienda. Se un utente malintenzionato distrugge l'aspetto del tuo sito web, potrebbe cambiare le opinioni del visitatore sulla tua azienda.
Va ricordato che un altro rischio derivante da questo attacco al sito Web è il furto dell'identità di un altro utente.
cos'è il test alfa con l'esempio
Come accennato, con HTML Injection l'utente malintenzionato può iniettare l'intera pagina, che verrebbe visualizzata per l'utente finale. Quindi se l'utente finale indicherà i suoi dati di accesso nella pagina di accesso falso, verrà inviato all'utente malintenzionato. Questo caso è, ovviamente, la parte più rischiosa di questo attacco.
Va ricordato che per rubare i dati di altri utenti, questo tipo di attacco viene selezionato meno frequentemente, poiché ci sono molti altri possibili attacchi.
Tuttavia, è molto simile all'attacco XSS, che ruba i cookie dell'utente e le identità di altri utenti. Esistono anche attacchi XSS, basati su HTML. Pertanto i test contro XSS e attacchi HTML possono essere molto simili ed essere eseguiti insieme.
Conclusione
Poiché HTML Injection non è così popolare come altri attacchi, può essere considerato meno rischioso di altri attacchi. Quindi il test contro questo tipo di iniezione a volte viene saltato.
Inoltre, è evidente che ci sono decisamente meno letteratura e informazioni su HTML Injection. Pertanto i tester possono decidere di non eseguire questo tipo di test. Tuttavia, in questo caso, i rischi di attacco HTML potrebbero non essere valutati abbastanza.
Come abbiamo analizzato in questo tutorial, con questo tipo di iniezione l'intero design del tuo sito web potrebbe essere distrutto o persino i dati di accesso dell'utente potrebbero essere rubati. Pertanto si consiglia vivamente di includere l'inserimento di HTML nei test di sicurezza e investire una buona conoscenza.
Hai incontrato qualche tipica iniezione HTML? Sentiti libero di condividere le tue esperienze nella sezione commenti qui sotto.
Lettura consigliata
- Tutorial approfonditi su Eclipse per principianti
- Tutorial sul test di SQL Injection (esempio e prevenzione di attacchi di SQL injection)
- Tutorial Python DateTime con esempi
- Esercitazione sugli attacchi Cross Site Scripting (XSS) con esempi, tipi e prevenzione
- Tutorial sull'iniezione di JavaScript: prova e previeni attacchi di JS Injection sul sito web
- Tutorial sullo scripting di shell Unix con esempi
- Selenio Trova elemento per tutorial di testo con esempi
- Tutorial sulle funzioni principali di Python con esempi pratici