Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
.
.
.
Alvo 1: PortSwigger Labs
PortSwigger Lab #1
Com base nos códigos de resposta do HTTP, vimos que senhas incorretas
retornam os códigos 200 OK, enquanto a única senha correta retorna o
código 302 Found.
PortSwigger Lab #2
A URL é importante nesse caso, pois vemos que ela é alterada para o final
/my-account.
Tentamos logar com a conta da vítima (user: carlos / senha: montoya), mas
não temos acesso ao seu email. Porém, o acesso não é necessário pois
podemos apenas alterar a URL, já que o usuário já está autenticado. Não é
necessária, portanto, a inserção do código e podemos pular para a página
que queremos acessar alterando a url para a desejada.
PortSwigger Lab #3
O terceiro laboratório, 2FA broken logic, por sua vez, mostra um caso em
que é possível manipular a requisição para burlar a verificação de usuário
do MFA. Sendo assim, pode-se capturar a requisição de POST do código e
alterar o parâmetro verify=wiener, que usa a conta do atacante, para
verify=carlos. Assim, bastaria fazer um ataque de força bruta no código
MFA e testar todas as possibilidades até obter sucesso.
Para isso, porém, é necessário configurar o fuzzling para que seja mais
efetivo.
Com isso, o que temos é que o valor sempre terá 4 caracteres e testará de
0000 até 9999, ou seja, todas as combinações possíveis.
Basta deixar, agora, que o ZAP trabalhe, até retornar um código 302 Found.
PortSwigger Lab #4
PortSwigger Lab #5
Porém, se a senha atual estiver correta, mas as senhas novas não estão
iguais, a mensagem recebida é “New passwords do not match”. Essa
mensagem indica que, caso seja feito um fuzzling, o tamanho da resposta
será diferente para os dois casos.
Além disso, pela lógica, se o erro está nas senhas novas e não na senha
atual, isso significa que a senha usada funciona para login.
Usando, mais uma vez, o recurso Fuzzler, podemos inserir a lista de senhas
pré-existentes e fazer um brute-force no usuário de Carlos.
Vale lembrar que as senhas devem ser diferentes, conforme abaixo, para
que a mensagem de retorno seja diferente no site e, com isso, saibamos
qual é a senha atual (current-password) que funciona.
.
.
.
Desafios
O que pode ser feito é a criação de dois payloads: um com as três contas
de usuário, que tiveram tempo de resposta menor, e outro com as senhas,
para serem testadas nos três. O brute force é muito mais viável em um
número limitado de contas.
.
.
.
Mitigação da Vulnerabilidade
Uma das táticas que pode ser usada neste objetivo é implementar o
HTTPS. Por vezes, a conexão é não-criptografa e somente via HTTP, o que
permite que credenciais fiquem expostas. É importante direcionar o
tráfego HTTP para HTTPS, quando possível.
.
.
.
Conclusão
.
.
.