Phishing
Last updated
Last updated
Outro tipo muito comum de ataque XSS é o ataque de phishing. Os ataques de phishing geralmente utilizam informações aparentemente legítimas para induzir as vítimas a enviar suas informações confidenciais ao invasor. Uma forma comum de ataques de phishing XSS é através da injeção de formulários de login falsos que enviam os detalhes de login ao servidor do invasor, que podem então ser usados para fazer login em nome da vítima e obter controle sobre sua conta e informações confidenciais.
Para entender qual carga útil deve funcionar, tente visualizar como sua entrada é exibida no código-fonte HTML depois de adicioná-la.
Depois de identificarmos uma carga XSS funcional, podemos prosseguir para o ataque de phishing. Para realizar um ataque de phishing XSS, devemos injetar um código HTML que exiba um formulário de login na página de destino. Este formulário deve enviar as informações de login para um servidor que estamos escutando, de forma que, assim que um usuário tentar fazer login, obteremos suas credenciais.
Posteriormente estaremos escutando o IP para recuperar as credenciais enviadas do formulário. O formulário de login deve ficar assim:
A seguir, devemos preparar nosso código XSS e testá-lo no formulário vulnerável. Para escrever código HTML na página vulnerável, podemos usar a função JavaScript document.write()
e usá-la na carga útil XSS que encontramos anteriormente na etapa de descoberta de XSS. Depois de reduzirmos nosso código HTML em uma única linha e adicioná-lo dentro da write
função, o código JavaScript final deverá ser o seguinte:
Agora podemos injetar esse código JavaScript usando nossa carga XSS (ou seja, em vez de executar o alert(window.origin)
código JavaScript).
Também vemos que ainda resta um pedaço do código HTML original após nosso formulário de login injetado. Isso pode ser removido simplesmente comentando, adicionando um comentário de abertura HTML após nossa carga XSS:
Então, vamos iniciar um netcat
servidor simples e ver que tipo de solicitação recebemos quando alguém tenta fazer login através do formulário. Para isso, podemos começar a escutar na porta 80 do nosso Pwnbox, da seguinte forma:
O seguinte script PHP deve fazer o que precisamos, e vamos gravá-lo em um arquivo em nossa VM que chamaremos index.php
e colocaremos em /tmp/tmpserver/
( don't forget to replace SERVER_IP with the ip from our exercise
):
Agora que temos nosso index.php
arquivo pronto, podemos iniciar um PHP
servidor de escuta, que podemos usar no lugar do netcat
ouvinte básico que usamos anteriormente:
Vamos tentar fazer login no formulário de login injetado e ver o que obtemos. Vemos que somos redirecionados para a página original do Image Viewer: