Esta aplicação web tem um botão misterioso que guarda a chave do sucesso, mas há um problema - ele está completamente desativado! Os desenvolvedores pensaram que eram espertos ao desativá-lo, mas restrições do lado do cliente raramente são tão seguras quanto parecem. Coloque suas habilidades de manipulação do navegador à prova e descubra como dar vida a este botão adormecido!
Controles de segurança no lado do cliente em aplicações web estão entre as primeiras coisas que testadores de segurança aprendem a contornar. Quando desenvolvedores usam JavaScript para desabilitar botões, ocultar campos de formulário ou restringir interações do usuário, eles criam uma falsa sensação de segurança. Esses controles existem apenas no navegador e podem ser trivialmente substituídos usando ferramentas de desenvolvedor integradas. Compreender a manipulação no lado do cliente é uma habilidade fundamental em segurança web.
O Document Object Model (DOM) é a representação interna do navegador de uma página web. Todo elemento HTML - incluindo botões, formulários e campos de entrada - existe como um objeto no DOM que pode ser inspecionado e modificado em tempo real. Quando um desenvolvedor define o atributo disabled de um botão ou usa CSS para ocultar um elemento, essas restrições existem apenas no DOM e podem ser removidas ou alteradas por qualquer pessoa com acesso às ferramentas de desenvolvedor do navegador.
Aplicações web frequentemente implementam controles do lado do cliente como campos de formulário desabilitados, elementos ocultos, validação JavaScript, campos somente leitura e restrições de comprimento máximo. Cada um desses pode ser contornado usando o console de desenvolvedor do navegador. Por exemplo, remover um atributo disabled é tão simples quanto selecionar o elemento no painel Elements e excluir o atributo, ou executar um único comando JavaScript no console. Profissionais de segurança rotineiramente testam esses controles durante avaliações de aplicações web para verificar que a validação no lado do servidor aplica corretamente todas as restrições.
A regra fundamental da segurança web é que qualquer coisa que acontece no navegador pode ser manipulada pelo usuário. Controles do lado do cliente devem ser usados apenas para experiência do usuário - fornecendo feedback visual, prevenindo envios acidentais ou melhorando a usabilidade de formulários. Toda validação crítica de segurança deve acontecer no servidor, onde o usuário não pode modificar o código. Aplicações que dependem exclusivamente de controles do lado do cliente para segurança são vulneráveis a ataques de bypass triviais que não requerem ferramentas especializadas.
Crie uma conta gratuita e pratique cibersegurança.
Crie uma conta gratuita para iniciar seu próprio servidor dedicado, enviar flags e ganhar XP no ranking.
Começar a Hackear GrátisLabs que compartilham habilidades semelhantes
Escolha como deseja começar
Entre na sua conta