Agora que sabemos como descobrir e explorar sim nossas vulnerabilidades.
Vamos falar sobre como proteger os sites deles.
Então, se voltarmos agora para o GVW 8 e dissermos que a segurança está muito alta, você verá que eles têm uma maneira muito simples
de se proteger, mas, dessa forma, realmente funciona.
E o que eles fazem é pedir a senha atual.
Então, mesmo se conseguirmos esse formulário e fizermos todo o forjamento e todas as coisas que
estávamos fazendo e depois enviá-lo para a pessoa-alvo, não poderemos esconder isso e fazê-lo enviar
automaticamente porque não sabemos senha.
Por isso, pede a senha atual e, em seguida, permite que você adicione uma nova senha.
Então esta é uma ótima solução para este caso.
Embora porque e se o formulário realmente não alterar sua senha.
E se nós apenas enviarmos mensagens fingindo ser essa pessoa?
E se nós vamos postar coisas na parede dessa pessoa?
E se nós vamos postar coisas no blog dessa pessoa?
Então, já que Aref pode ser explorado para fazer muitas coisas.
Como eu disse em vídeos anteriores e este método só irá proteger contra a alteração da senha.
Você não pode realmente pedir à pessoa a senha toda vez que quiser postar alguma coisa ou fazer
algo com o perfil dela.
Agora, versões mais recentes de DVDs quando você precisa disso não vêm com o protocolo de teste para realmente ter uma opção
mais segura que irá implementar o método que eu vou falar com você sobre isso.
Agora, na verdade, é chamado de impossível, em vez de alto, mas não importa se
não é explorável, então não precisamos instalá-lo.
Portanto, vamos falar sobre como você pode impedir que essas vulnerabilidades aconteçam sem solicitar
que o usuário insira novamente as informações ou insira novamente a senha.
Se você pensar nisso, a maneira como fomos capazes de explorar isso é que conseguimos copiar o
formulário que o site usa e enviá-lo para a pessoa-alvo e fazer com que essa pessoa o execute ou seja executada
automaticamente no computador da pessoa-alvo.
Assim, uma vez que o pedido é enviado para o servidor ou o servidor não estava fazendo nenhum tipo
de validação para garantir que o usuário realmente deseja alterar sua senha.
Portanto, a melhor maneira de evitar a falha é certificar-se de que o usuário está enviando dados por meio de
uma página que lhe foi entregue pelo aplicativo da Web e não por qualquer outra pessoa.
Uma boa maneira de implementar isso é usar tokens de sincronização.
Agora eu sei que o nome parece complicado, mas a ideia é muito simples.
Basicamente, queremos gerar um token único e aleatório no lado do servidor.
Então, quando a página é carregada quando o formulário é carregado, vamos incorporar esse token já
gerado a essa página como um formulário oculto.
Então, quando o formulário for enviado, vamos nos certificar de que o formulário foi enviado com
aquele token que enviamos para esse usuário específico.
Então, basicamente, damos ao usuário um token e depois esperamos que ele envie o formulário com o token
que lhe demos.
Dessa forma, o símbolo que o hacker recebe só funcionará para ele.
Então, mesmo que ele gere uma página e a envie para o alvo e o
alvo jogue a página, o formulário será enviado, mas será recusado pelo servidor, porque ele não
deu esse token ao usuário que deu o token ao hacker. por exemplo, temos esse usuário aqui e aqui
custa Facebook dot com senha BHB.
Vai para o servidor.
O servidor vai gerar uma resposta para essa solicitação.
Então, ele retornará a página de e-mail que representa as senhas ph nessa página.
Vai incluir um token exclusivo.
Então, quando a página é carregada no lado do cliente, ela já terá a forma que
o usuário está procurando, além de um token exclusivo que foi gerado pelo servidor.
Então, quando o usuário enviar o que deseja enviar, o servidor só aceitará o formulário e responderá
ou reagirá ao que o usuário está pedindo.
Se o usuário retornar o mesmo token.
Agora, se isso não for implementado corretamente, ainda poderá ser explorado.
Portanto, se o token era previsível ou se o mesmo token estava sendo usado, então você, o hacker, pode descobrir
o que o token está embutido no código HDMI e enviá-lo ao usuário.
Portanto, o token precisa ter certas características para que seja seguro.
E basicamente o principal é que você deve ter em mente que o token precisa ser
imprevisível e não pode ser usado independentemente da maneira como você vai implementar isso.
Estas são as duas principais coisas que você deve ter em mente, pois se fosse
previsível, o hacker poderá criar seus próprios tokens e depois incorporá-los ao código e executar o ataque.
O mesmo token pode ser usado.
Então, os hackers podem usar o token ou o símbolo de outra pessoa para atingir o alvo.
Assim, para tornar o token imprevisível e torná-lo de modo que possa ser usado, o token precisa
ser um valor grande para que o hacker não possa fazer um ataque de força bruta e descobrir qual é o
token como aleatório. para que o hacker não seja capaz de criar seus próprios tokens e ele precisa ser
único para cada usuário, pois se os usuários receberem o mesmo token ou tokens semelhantes, eles poderão passá-los
e então o token que funciona para o hacker funcionará outras pessoas.
Então isso vai definir o ponto todo.
Você também pode aumentar a segurança do token incluindo outros fatores e o algoritmo de
geração de token.
Então você pode incluir, por exemplo, a data e a hora.
Em seguida, combine-o com um gerador aleatório seguro e, em seguida, criptografe-o.
Tudo isso está obviamente acontecendo no lado do servidor.
Assim, o hacker não poderá saber qual algoritmo você está usando porque o código será executado
no lado do servidor.
Você não precisa necessariamente fazer isso usando um número aleatório grande e único e seguro o suficiente.
Mas se você quiser aumentar a segurança, basta adicionar outros fatores e criptografar o token antes
de enviá-lo ao usuário.
Isso é realmente implementado no dia da Matile.
Então deixe-me mostrar a você em ação.
Então eu vou apenas para o dia da Matile aqui.
Eu vou ir em uma vespa então sim ou como um add para o blog.
Então, isso permite que você adicione uma postagem no blog para que ele não permita que você altere sua senha ou
qualquer coisa que ela realmente permita que pessoas anônimas acessem também as postagens do blog.
Então você não pode realmente pedir às pessoas uma senha.
Na verdade, vou alternar segurança para que seja a mais alta, porque está no zero agora.
Então agora é o mais seguro.
E se você clicar com o botão direito e continuar, estará inspecionando o elemento.
Agora eu vou rolar para cima e como você pode ver, temos o fórum aqui e temos uma entrada oculta com um
valor muito longo.
E esse é o token.
Portanto, isso já foi gerado pelo servidor e o servidor recusará qualquer pedido que enviarmos
a ele, a menos que tenha esse token específico.
E se eu usar este formulário e enviá-lo para outra pessoa.
Então, novamente, os pedidos que eles enviarão serão recusados ​​porque eles receberão um token diferente. Esse
token foi gerado para mim e para mim apenas.
Então deixe-me mostrar-lhe se eu realmente atualizar agora eu vou ter um sinal diferente.
E, novamente, se eu atualizar novamente, receberei um token diferente se eu modificar isso.
Então, digamos que em vez da capital eu no final eu vou colocar um pequeno eu se eu enviar isso
agora está me dando um erro.
Mas deixe-me não mudar isso, então novamente eu tenho um token diferente agora e se eu apenas submetido
do jeito que é, vai funcionar e agora temos um blog chamado test.
Então é isso.
Na verdade é muito simples.
Eu não queria entrar em muitos detalhes sobre como criar um token aleatório e tudo
isso, porque isso depende da linguagem de programação.
Essa é a aplicação web está programada em.
Mas eu só queria mostrar o conceito ou a ideia de como proteger aplicativos da Web contra
esse tipo de vulnerabilidade.
A ideia é que você queira ter certeza de que o usuário envia os dados por meio de uma página que
você atende e não por uma página que foi dada a eles por outra pessoa.
Então, para fazer isso, geramos um token no lado do servidor, esse token precisa ser longo, aleatório e
único, enviar esse token com a página com o formulário e incorporado como um formulário oculto.
E sempre que um usuário enviar a resposta, envie o mesmo token que foi fornecido
a ela.