Estou fazendo um teste de penetração em um aplicativo da web e ele usa window.history.back()
para voltar ao anterior página. É seguro usar isso?
Por exemplo, se eu visitar google.com, for para o aplicativo da web e pressionar voltar, ele me apresentará google.com novamente. Da mesma forma, se um invasor pudesse de alguma forma simular isso em um iframe (se isso fosse armazenado no histórico da janela) ou se o usuário visitar a URL (mas isso seria inútil) ou possivelmente alterar algum tipo de mecanismo de cache. Que maneiras reais existem para explorar isso?
Este é um problema real ou estou pensando demais?
Resposta
Você pode ler sobre windows.history site da Mozilla . Resumidamente, ele explica que history.back () não é diferente de clicar no botão Voltar do seu navegador. você está pensando demais sobre windows.history.back, , mas não sobre o objeto window.history em si! .
Se eu explicar em detalhes, estaria fora do tópico, no entanto, posso afirmar em breve que os métodos window.history.pushState () ou window.history.replaceState () valem mais a pena se preocupar. A manipulação do histórico do navegador é possível. Você também pode confira em:
Manipulando o histórico do navegador
Resposta
Se uma página tiver um link que window.history.back()
pode estar aberto a ataques que abusam da confiança que um usuário deposita nos links dentro do aplicativo da web. Uma forma de redirecionamento aberto é possível. Quando um usuário visita o site de um invasor que redireciona para o aplicativo da web, o link de retorno vai parar no site do invasor, que pode apresentar uma página de phishing.
Portanto, o usuário pode confiar que todos os links dentro do aplicativo são confiáveis, enquanto um link pode, na verdade, acabar em outro site. Um ataque de phishing real seria difícil, pois a vítima precisa primeiro visitar o site do invasor, se convencer de que está visitando o aplicativo confiável da web e clicar no botão Voltar sem perceber que está saindo do aplicativo confiável.
Comentários
- Pensamento interessante. Acho que um cenário válido seria algo como páginas de ajuda com ' voltar ' link na parte inferior ou algo assim. O invasor pode criar um link com segurança para essas páginas porque o usuário simplesmente retornará ao site ' do invasor. Se se o usuário verificar o domínio enquanto estiver na página de ajuda, tudo será verificado. Mas essas páginas são raras (especialmente com um design da Web mais moderno) e o risco parece muito baixo.