Testando autenticação quebrada

Quando as funções de autenticação relacionadas ao aplicativo não são implementadas corretamente, isso permite que os hackers comprometam senhas ou IDs de sessão ou explorem outras falhas de implementação usando as credenciais de outros usuários.

Vamos entender os Agentes de Ameaça, Vetores de Ataque, Fraqueza de Segurança, Impacto Técnico e Impactos de Negócios dessa falha com a ajuda de um diagrama simples.

Exemplo

An e-commerce application supports URL rewriting, putting session IDs in the URL −

http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop

Um usuário autenticado do site encaminha a URL para seus amigos para saber sobre as vendas com desconto. Ele envia um e-mail com o link acima sem saber que o usuário também está fornecendo os IDs de sessão. Quando seus amigos usam o link, eles usam sua sessão e cartão de crédito.

Mãos em

Step 1- Faça login no Webgoat e navegue até a seção 'Falha de gerenciamento de sessão'. Vamos contornar a autenticação falsificando o cookie. Abaixo está o instantâneo do cenário.

Step 2 - Ao fazer o login usando as credenciais webgoat / webgoat, descobrimos no Burp Suite que a JSESSION ID é C8F3177CCAFF380441ABF71090748F2E, enquanto AuthCookie = 65432ubphcfx após a autenticação bem-sucedida.

Step 3 - Ao fazer o login usando o aspecto / aspecto das credenciais, descobrimos no Burp Suite que a JSESSION ID é C8F3177CCAFF380441ABF71090748F2E, enquanto AuthCookie = 65432udfqtb após autenticação bem-sucedida.

Step 4- Agora precisamos analisar os padrões do AuthCookie. A primeira metade '65432' é comum para ambas as autenticações. Portanto, agora estamos interessados ​​em analisar a última parte dos valores do authcookie, como - ubphcfx para o usuário do webgoat e udfqtb para o usuário do aspecto, respectivamente.

Step 5- Se dermos uma olhada profunda nos valores AuthCookie, a última parte tem o mesmo comprimento que o nome do usuário. Portanto, é evidente que o nome de usuário é usado com algum método de criptografia. Mediante tentativa e erros / mecanismos de força bruta, descobrimos que após inverter o nome de usuário, webgoat; terminamos com taogbew e então o caractere do alfabeto anterior é o que está sendo usado como AuthCookie. ou seja, ubphcfx.

Step 6- Se passarmos esse valor de cookie e vamos ver o que acontece. Após a autenticação como usuário webgoat, altere o valor AuthCookie para simular a usuária Alice, encontrando AuthCookie para o mesmo executando as etapas 4 e 5.

Mecanismos de Prevenção

  • Desenvolva uma autenticação forte e controles de gerenciamento de sessão de forma que atenda a todos os requisitos de autenticação e gerenciamento de sessão definidos no Padrão de Verificação de Segurança de Aplicativos da OWASP.

  • Os desenvolvedores devem garantir que evitam falhas de XSS que podem ser usadas para roubar IDs de sessão.