Zaid: Agora vamos
falar sobre como podemos prevenir vulnerabilidades XSS.
A forma como essas vulnerabilidades acontecem
é porque sempre que um usuário insere
algo em
uma caixa de texto ou
em um parâmetro, essa entrada é exibida no HTML.
Portanto, é tratado como se fosse parte da página
e, portanto, se houver JavaScript nele, o
código está sendo executado.
Portanto, para evitar esse exploit, a melhor
coisa a fazer
é tentar minimizar o uso de entrada não confiável.
Portanto, sempre que um usuário inserir
algo ou a qualquer momento que algo for inserido
a partir de parâmetros, tente minimizar isso.
Além disso,
certifique-se de sempre escapar de
tudo o que será exibido
ou usado na página HTML, porque
XSS não só pode ser injetado em
locais onde as coisas são exibidas na
página, mas também pode ser injetado em parâmetros
de certos elementos de a página HTML.
Portanto, o que quero dizer
com escape é converter cada um
desses caracteres para o que eles seriam representados em HTML.
Você pode fazer isso usando scripts,
e você pode fazer isso usando seu próprio script.
Agora, deixe-me mostrar como isso acontece.
Agora estou aqui na minha página da Web vulnerável
que estávamos usando
e irei para a página de armazenamento.
E obviamente você
pode ver que toda vez que clicamos nele, o XSS é executado.
Então, vamos inspecionar esse elemento.
Agora, este elemento é onde injetamos nosso alerta.
E se clicarmos com
o botão direito e formos inspecionar
o elemento, ele nos mostrará o HTML desta página, ou
o HTML deste elemento específico aqui, em
destaque.
Vou tornar isso maior.
E se olharmos bem aqui, você verá que
temos o nome, e
esse é Zaid.
E então a outra entrada, que é a mensagem, é um
script, e o
script o que o script faz,
faz exercício de alerta.
Portanto, é exatamente o que injetamos quando
fizemos o comentário.
Então, toda vez que estivemos nesta
página, esse trecho de código é executado. O que precisamos
fazer é
garantir que cada vez que um usuário insira algo
e que algo seja exibido em uma página
ou que algo seja usado em algum lugar nos elementos.
Então mesmo o ID aqui
ou mesmo o H, o ID é só, por exemplo,
é um parâmetro do
div, não é mostrado, você nunca vê
esse ID, mas isso pode ser injetável, pode ser injetado também.
Assim, os hackers podem realmente tentar injetar coisas
nos parâmetros, eles podem tentar injetar coisas nos
atributos da imagem, por exemplo, eles
podem fazer uma
imagem e injetar coisas na
fonte ou no URL.
Portanto, este é apenas um exemplo aqui.
E toda vez que a entrada do usuário será usada em
qualquer lugar da página, então mesmo que você
não a veja, se você normalmente não a vê, você
precisa ter certeza de escapar dessa
entrada e
certificar-se de que ela não contém
nenhum código e, se
contiver algum código, será convertido em um equivalente, o
código não estará em execução.
Portanto, ele é convertido em seu equivalente HTTP,
de modo que você realmente, depois de escapar
disso, verá isso na mensagem.
Portanto, você vê a mensagem como um alerta
de script XSS, mas nunca será executado.
Este script nunca será realmente executado na pessoa
alvo quando ela for executada.
Agora, como usuário, para evitar
que seja usado em um ataque XSS.
Agora, a URL que chega até você provavelmente
se parecerá com a URL de um site confiável, por exemplo,
vamos supor
que você trabalha em uma empresa
e havia um XSS em sua empresa, e você
está fazendo login em sua empresa e
o código é executado em você, então
não há muito que você possa fazer sozinho.
Mas, você precisa ter cuidado.
Assim, com BeEF, vimos a fim de explorar
as vulnerabilidades, estávamos mostrando, por exemplo,
uma atualização falsa.
Portanto, certifique-se de que, ao receber uma mensagem
sempre que
há uma atualização, acesse o site
que fornece esse aplicativo.
Portanto, se o
Firefox disse que há uma atualização, vá para o site do Firefox
e veja se realmente há uma atualização.
E se houver, baixe desse site,
não baixe da notificação que você recebeu.
Certifique-se também de fazer o download de um site HTTPS.
E depois de baixá-lo, você pode inspecioná-lo e verificá-lo
da mesma forma que
vimos antes para ter certeza
de que não há backdoors ou qualquer coisa nele.
Você também pode verificar o md5sum, para ter
certeza de que o arquivo
não foi manipulado enquanto estava sendo baixado.
O mesmo quando fizemos o login falso do
Facebook quando você estava com o BeEF, então o que você pode
fazer é sempre
que for informado de que foi desconectado, faça
o login novamente, ignore isso.
Vá para o Facebook. com, certifique-se de que está passando por HTTPS
e, em seguida, faça login no Facebook.
Portanto, sempre tente ter cuidado com as notificações que aparecem dizendo que
você precisa fazer coisas.
Sempre seja cauteloso
e nunca confie neles.