Web Cache Deception
Atualizado
Isto foi útil?
Atualizado
Isto foi útil?
Para solucionar esse laboratório, encontre a API key para o usuário
carlos
. Você pode se autenticar usando as seguintes credenciais:wiener:peter
.
Nesse laboratório, foi preciso explorar as regras de caching utilizadas pelo servidor. Para isso, busquei entender quais regras permitem que um recurso seja armazenado em cache para desenvolver um payload que ao ser enviado à vítima (nesse caso, o usuário carlos
), o resultado fosse armazenado em cache e pudesse acessar posteriormente o resultado armazenado em cache.
Navegando pela página do laboratório, notei que as requisições a arquivos JavaScript recebiam um cabeçalho adicional:
Com isso, tentei reenviar a requisição para a página de perfil a qual fui redirecionado assim que fiz login (my-account
), mas dessa vez inserindo um caminho /account.js
ao final. Da primeira vez, o cabeçalho X-Cache
foi adicionado à requisição com o valor miss
. Reenviando, o resultado obtido foi o seguinte:
Com isso, descobri que o servidor processava o último parâmetro do caminho, e apenas retornava o conteúdo da página dinâmica my-account
. Ou seja, falta apenas desenvolver um payload que após enviado à vítima, redirecione para a página my-account/account.js
e seja armazenado em cache para acessar posteriormente:
Clicando em Deliver exploit to victim
e reproduzindo a página /my-account/account.js
pelo Caido, obtive a resposta para o laboratório: