Zaid: Ora parliamo
di come possiamo prevenire le vulnerabilità XSS.
Il modo in cui si verificano
queste vulnerabilità è perché ogni volta che un
utente inserisce
qualcosa in una casella di
testo o in un parametro, quell'input viene visualizzato nell'HTML.
Quindi viene trattato come se fosse parte della
pagina e quindi, se contiene JavaScript,
il codice viene eseguito.
Quindi, per prevenire questo exploit, la cosa
migliore da fare è
cercare di ridurre al minimo l'utilizzo di input non attendibili.
Quindi, ogni volta che un
utente immette qualcosa o ogni volta che viene immesso
qualcosa dai parametri, cerca di minimizzarlo.
Inoltre, assicurati
di sfuggire sempre a tutto
ciò che verrà visualizzato o
utilizzato nella pagina HTML, perché XSS
non solo può essere iniettato nei punti
in cui vengono visualizzate le cose sulla
pagina, ma può anche essere iniettato nei parametri
di determinati elementi di la pagina HTML.
Quindi quello che intendo con
l'escape è convertire ciascuno di questi
caratteri in ciò con cui sarebbero rappresentati in HTML.
Puoi farlo usando gli script
e puoi farlo usando il tuo script.
Ora, lascia che ti mostri come accade.
Ora sono qui nella mia pagina web vulnerabile
che stavamo usando,
e vado a quella di archiviazione.
E ovviamente puoi
vedere che ogni volta che facciamo clic su di esso, l'XSS viene eseguito.
Quindi ispezioniamo questo elemento.
Ora questo elemento è dove abbiamo iniettato il nostro avviso.
E se facciamo clic
con il tasto destro e andiamo
su ispeziona elemento, ci mostrerà l'HTML di questa pagina, o
l'HTML di questo particolare elemento proprio qui,
evidenziato.
Quindi lo ingrandirò.
E se lo guardiamo qui, vedrai che abbiamo
il nome, e quello
è Zaid.
E poi l'altro input, che è il messaggio, è uno script,
e lo script
cosa fa lo script fa
un esercizio di avviso.
Quindi è esattamente quello che ci abbiamo iniettato quando abbiamo
fatto il commento.
Quindi ogni volta che siamo su
questa pagina, questo pezzo di codice viene eseguito Quindi quello
che dobbiamo fare
è assicurarci che ogni volta che un utente inserisce
qualcosa e che qualcosa verrà visualizzato su una pagina,
o che qualcosa verrà utilizzato da qualche parte negli elementi.
Quindi anche l'ID qui o
anche l'H, l'ID è solo, ad esempio, è un
parametro del div, non
viene visualizzato, non si vede mai questo
ID, ma questo può essere iniettabile, può anche essere iniettato.
Quindi gli hacker possono effettivamente provare a
iniettare cose nei parametri, possono provare a
iniettare cose negli attributi dell'immagine, ad
esempio, possono
fare un'immagine e iniettare cose
nella fonte o nell'URL.
Quindi questo è solo un esempio qui.
E ogni volta che l'input degli utenti verrà utilizzato in qualsiasi
punto della pagina, quindi anche se non
lo vedi, se di solito non lo vedi, devi
assicurarti di sfuggire a quell'input e
assicurarti che
lo faccia non contiene alcun codice
e, se contiene
codice, viene convertito in un equivalente che il
codice non verrà eseguito.
Quindi viene convertito nel suo equivalente HTTP, in
modo che in realtà, una volta eseguito l'escape,
lo vedrai effettivamente nel messaggio.
Quindi vedi il messaggio come avviso di script
XSS, ma non verrà mai eseguito.
Questo script non verrà mai effettivamente eseguito sulla
persona di destinazione quando lo esegue.
Ora come utente, per evitare
di essere utilizzato in un attacco XSS.
Ora, l'URL che ti arriva probabilmente assomiglierà a
un URL di un sito Web attendibile, ad esempio, supponiamo che
tu lavori
in un'azienda e che ci fosse
un XSS nella tua azienda, e che tu stia
effettuando l'accesso alla tua azienda e il
codice venga eseguito su di te, allora
non c'è molto che puoi fare da solo.
Ma devi stare attento.
Quindi con BeEF, abbiamo visto per sfruttare
le vulnerabilità, mostravamo, ad esempio, un
falso aggiornamento.
Quindi assicurati quando, se ricevi sempre un messaggio
che c'è
un aggiornamento, assicurati di visitare effettivamente il
sito Web che fornisce quell'applicazione.
Quindi, se
Firefox dice che c'è un aggiornamento, vai al sito web di Firefox
e vedi se c'è effettivamente un aggiornamento.
E se c'è, scaricalo da quel sito
web, non scaricarlo dalla notifica che hai ricevuto.
Assicurati anche di scaricarlo da un sito Web HTTPS.
E una volta scaricato, puoi ispezionarlo e controllarlo nello
stesso modo in
cui abbiamo visto prima per
assicurarti che non ci siano backdoor o altro.
Puoi anche controllare md5sum, per assicurarti che
il file non sia
stato manipolato durante il download.
Lo stesso quando abbiamo fatto il falso accesso
a Facebook quando sei con BeEF, quindi quello che puoi fare è ogni
volta che ti
viene detto che sei uscito, per favore accedi
di nuovo, di nuovo, ignoralo.
Vai su Facebook. com, assicurati che funzioni tramite HTTPS,
quindi accedi a Facebook.
Quindi, cerca sempre di stare attento con le notifiche che ti dicono
che devi fare cose.
Stai sempre attento e
non fidarti mai di loro.