Logs
PortfólioSocial
  • Boas-vindas
    • Logs
  • Capture the Flag
    • Hack The Box
      • Máquinas
        • Chemistry
        • Cicada
        • Instant
        • Sea
        • Trickster
        • Yummy
      • Desafios
        • Web
          • ApacheBlaze
          • C. O. P
          • Neonify
          • No-Threshold
          • RenderQuest
        • Hardware
          • Photon Lockdown
    • Web Security Academy
      • API Testing
      • Web Cache Deception
    • Juice Shop
      • Broken Access Control
      • Broken Authentication
      • Cross-Site Scripting (XSS)
      • Cryptographic Issues
      • Improper Input Validation
      • Injection
      • Miscellaneous
      • Sensitive Data Exposure
      • Security Misconfiguration
      • Unvalidated Redirects
  • Recursos
    • Cursos
    • Ferramentas
    • Jogos
    • Plataformas
  • Segurança
    • Contêiner
Fornecido por GitBook
Nesta página

Isto foi útil?

Editar no GitHub
  1. Capture the Flag
  2. Web Security Academy

Web Cache Deception

AnteriorAPI TestingPróximoJuice Shop

Atualizado há 4 meses

Isto foi útil?

Exploiting path mapping for web cache deception

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:

Laboratório I - cabeçalho indicando sistema de cache em arquivos JavaScript
Laboratório I - manipulando o sistema de cache para armazenar recurso dinâmico
Laboratório I - exploit
Laboratório I - solução