Zaid : Parlons maintenant
de la façon dont nous pouvons empêcher les vulnérabilités XSS.
La façon dont ces vulnérabilités se produisent
est que chaque fois qu'un utilisateur entre quelque
chose dans une
zone de texte ou dans
un paramètre, cette entrée est affichée dans le code HTML.
Il est donc traité comme s'il faisait partie de la
page, et donc, s'il contient du JavaScript, le
code est en cours d'exécution.
Donc, pour empêcher cet exploit, la
meilleure chose à
faire est d'essayer de minimiser l'utilisation d'entrées non fiables.
Donc, chaque fois qu'un utilisateur entre quelque
chose ou à chaque fois que quelque chose entre quelque chose
à partir de paramètres, essayez de minimiser cela.
Assurez-vous également
de toujours échapper à tout ce
qui sera affiché ou utilisé
dans la page HTML, car XSS
peut non seulement être injecté dans des
endroits où des éléments sont affichés sur la
page, mais il peut également être injecté dans les
paramètres de certains éléments de la page HTML.
Donc, ce que je veux
dire par échapper, c'est convertir chacun de
ces caractères en ce par quoi ils seraient représentés en HTML.
Vous pouvez le faire en utilisant des
scripts, et vous pouvez le faire en utilisant votre propre script.
Maintenant, laissez-moi vous montrer comment cela se produit.
Maintenant, je suis ici sur ma page Web vulnérable
que nous utilisions, et
je vais aller à celle de stockage.
Et évidemment, vous
pouvez voir qu'à chaque fois que nous cliquons dessus, le XSS s'exécute.
Inspectons donc cet élément.
Maintenant, cet élément est l'endroit où nous avons injecté notre alerte.
Et si nous faisons
un clic droit sur l'élément inspecter, cela
nous montrera le code HTML de cette page, ou le code
HTML de cet élément particulier ici, mis en
évidence.
Alors je vais l'agrandir.
Et si nous le regardons ici, vous verrez que
nous avons le nom,
et c'est Zaid.
Et puis l'autre entrée, qui est le message, c'est un
script, et le
script ce que le script
fait, il alerte l'exercice.
C'est donc exactement ce que nous y avons injecté lorsque nous
avons fait le commentaire.
Donc, chaque fois que nous étions sur
cette page, ce morceau de code est exécuté. Donc, ce que
nous devons faire,
c'est nous assurer que chaque fois qu'un utilisateur entre quelque
chose et que quelque chose sera affiché sur une page,
ou que quelque chose sera utilisé quelque part dans les éléments.
Donc même l'ID ici ou
même le H, l'ID est juste, par exemple, un
paramètre du div, il
n'est pas affiché, vous ne voyez jamais
cet ID, mais cela peut être injectable, peut être injecté aussi.
Ainsi, les pirates peuvent réellement essayer d'injecter des éléments dans
les paramètres, ils peuvent essayer d'injecter des éléments dans
les attributs de l'image, par exemple, ils
peuvent créer une
image et injecter des éléments dans
la source ou dans l'URL.
Ce n'est donc qu'un exemple ici.
Et chaque fois que l'entrée des utilisateurs sera utilisée n'importe où sur
la page, donc même si vous ne la
voyez pas, si vous ne la voyez généralement pas, vous
devez vous assurer que vous échappez à
cette entrée
et assurez-vous qu'elle le fait ne
contient aucun code, et
s'il contient du code, il est converti en un équivalent,
le code ne s'exécutera pas.
Il est donc converti en son équivalent HTTP, de
sorte que vous verrez en fait, une fois que vous aurez
échappé à cela, cela dans le message.
Vous voyez donc le message comme alerte de script
XSS, mais il ne sera jamais exécuté.
Ce script ne sera jamais réellement exécuté sur la
personne cible lors de son exécution.
Maintenant, en tant qu'utilisateur, pour
éviter d'être utilisé dans une attaque XSS.
Maintenant, l'URL qui vous parvient ressemblera probablement à
l'URL d'un site Web de confiance, par exemple, supposons que vous
travaillez dans
une entreprise et qu'il y avait
un XSS dans votre entreprise, et que vous vous
connectez à votre entreprise et que le
code est exécuté sur vous, alors il
n'y a pas grand-chose que vous puissiez faire vous-même.
Mais, vous devez être prudent.
Donc avec BeEF, on a vu pour exploiter
les vulnérabilités, on montrait, par exemple, une fausse
mise à jour.
Donc, assurez-vous que lorsque vous recevez un message indiquant qu'il y
a toujours une
mise à jour, assurez-vous de vous rendre sur le
site Web qui fournit cette application.
Donc, si Firefox
dit qu'il y a une mise à jour, allez sur le site Web de Firefox et
voyez s'il y a réellement une mise à jour.
Et s'il y en a, téléchargez-le à partir de ce site Web,
ne le téléchargez pas à partir de la notification que vous avez reçue.
Assurez-vous également de le télécharger à partir d'un site Web HTTPS.
Et une fois que vous l'avez téléchargé, vous pouvez l'inspecter et le vérifier
de la même manière que
nous l'avons vu auparavant pour vous assurer qu'il
n'y a pas de portes dérobées ou quoi que ce soit dedans.
Vous pouvez également vérifier la somme md5, pour
vous assurer que le fichier
n'a pas été manipulé pendant son téléchargement.
La même chose lorsque nous avons fait la fausse
connexion Facebook lorsque vous êtes avec BeEF, donc ce que vous pouvez faire est
que chaque fois qu'on
vous dit que vous vous êtes déconnecté, veuillez vous reconnecter,
encore une fois, ignorez cela.
Aller sur Facebook. com, assurez-vous qu'il passe par HTTPS,
puis connectez-vous à Facebook.
Alors, essayez toujours de faire attention aux notifications qui vous indiquent que
vous devez faire des choses.
Soyez toujours prudent et
ne leur faites jamais confiance.