Cibersegurança e segurança da informação

Cross-Site Scripting: Stored, Reflected e DOM

7 min de leituraPublicado: 5 de agosto de 2026
Ilustração visual profissional sobre testes de XSS no campo de Web e API PT
Resposta rápida

O teste de XSS só é realizado em laboratório ou em um sistema autorizado. Verifica-se o Request/Response, o comportamento do servidor, os Roles, o State e o impacto, utilizando testes mínimos que não danificam os dados.

Os testes de segurança Web e API devem examinar os limites de confiança, permissões, entrada, estado e lógica de negócios. Cada teste neste artigo destina-se a um laboratório, CTF ou sistema para o qual foi concedida permissão explícita. Este artigo foca-se nos testes de XSS e destina-se a estudantes de Web PT e desenvolvedores. O objetivo é fornecer um método de trabalho que possa ser aplicado na prática, em entrevistas profissionais e em ambientes de trabalho, sem se contentar com uma definição de dicionário.

O principal desafio é que os dados estão quase sempre incompletos. O contexto, a codificação e a CSP podem indicar uma direção, mas o seu significado depende do tempo, do ativo, do utilizador e da atividade esperada. Portanto, construiremos o teste em torno de uma questão de investigação, das evidências necessárias e de um critério claro para a conclusão.

O cenário prático no artigo é: mapeamento de Input-to-Sink numa aplicação de laboratório. Todos os exemplos são dados de laboratório ou descrições de processos. No caso de Testes de Penetração, Web ou Cloud, deve-se trabalhar apenas com autorização explícita, um Scope definido e a capacidade de interromper o teste.

Como o XSS é Criado

O tópico 'Como o XSS é criado' é uma parte central do trabalho sobre testes de XSS. Recomenda-se dividi-lo em três perguntas: Qual é a entrada, que decisão se quer tomar e que evidência é suficiente para a justificar. Estas perguntas evitam o uso automático de uma ferramenta sem a compreensão do objetivo.

Na prática, registe o contexto, a codificação, a CSP, stored/reflected/DOM, a sanitização, compare com o comportamento esperado e defina pelo menos um Pivot. O resultado deve ser verificável por outro analista, incluindo limitações e próximos passos.

Reflected e Stored

O tópico 'Reflected e Stored' é uma parte central do trabalho sobre testes de XSS. Recomenda-se dividi-lo em três perguntas: Qual é a entrada, que decisão se quer tomar e que evidência é suficiente para a justificar. Estas perguntas evitam o uso automático de uma ferramenta sem a compreensão do objetivo.

Na prática, registe o contexto, a codificação, a CSP, stored/reflected/DOM, a sanitização, compare com o comportamento esperado e defina pelo menos um Pivot. O resultado deve ser verificável por outro analista, incluindo limitações e próximos passos.

DOM-based XSS

O tópico 'DOM-based XSS' é uma parte central do trabalho sobre testes de XSS. Recomenda-se dividi-lo em três perguntas: Qual é a entrada, que decisão se quer tomar e que evidência é suficiente para a justificar. Estas perguntas evitam o uso automático de uma ferramenta sem a compreensão do objetivo.

Na prática, registe o contexto, a codificação, a CSP, stored/reflected/DOM, a sanitização, compare com o comportamento esperado e defina pelo menos um Pivot. O resultado deve ser verificável por outro analista, incluindo limitações e próximos passos.

Contexto e Codificação

O tópico 'Contexto e Codificação' é uma parte central do trabalho sobre testes de XSS. Recomenda-se dividi-lo em três perguntas: Qual é a entrada, que decisão se quer tomar e que evidência é suficiente para a justificar. Estas perguntas evitam o uso automático de uma ferramenta sem a compreensão do objetivo.

Na prática, registe o contexto, a codificação, a CSP, stored/reflected/DOM, a sanitização, compare com o comportamento esperado e defina pelo menos um Pivot. O resultado deve ser verificável por outro analista, incluindo limitações e próximos passos.

CSP, Remediação e Reteste

Um teste profissional para XSS começa com condições de sucesso e condições de falha. Define-se um caso positivo, um caso negativo, um caso limite e uma atividade legítima semelhante. Desta forma, é possível identificar tanto falsos negativos quanto falsos positivos.

Num ambiente autorizado, utiliza-se uma ação mínima que comprove a afirmação sem causar danos. Guarda-se Input, Output, tempo e versão, e após a correção, realiza-se um Reteste no mesmo cenário e verifica-se também a regressão em funções adjacentes.

Pontos de Teste Únicos

Neste tópico, é recomendável construir previamente um mapa de evidências focado. Os principais pontos de teste são: contexto, codificação, CSP, stored/reflected/DOM, sanitização, sink/source. A lista não é uma Lista de Verificação automática; cada item é selecionado porque pode ligar uma entidade, ação e tempo ou explicar um comportamento legítimo.

  • contexto: Defina qual é o valor esperado, o que será considerado anómalo e qual fonte adicional confirmará a descoberta.
  • codificação: Defina qual é o valor esperado, o que será considerado anómalo e qual fonte adicional confirmará a descoberta.
  • CSP: Defina qual é o valor esperado, o que será considerado anómalo e qual fonte adicional confirmará a descoberta.
  • stored/reflected/DOM: Defina qual é o valor esperado, o que será considerado anómalo e qual fonte adicional confirmará a descoberta.
  • sanitização: Defina qual é o valor esperado, o que será considerado anómalo e qual fonte adicional confirmará a descoberta.
  • sink/source: Defina qual é o valor esperado, o que será considerado anómalo e qual fonte adicional confirmará a descoberta.

Quando um dos focos não está disponível, deve-se documentar a lacuna e escolher uma alternativa. Por exemplo, se o identificador de processo não for estável, pode-se usar o tempo, Host, User e Parent; se o Payload estiver encriptado, usam-se Metadados, volume, frequência e o contexto TLS/DNS.

Processo de Trabalho Recomendado

  1. Defina um Scope e uma única pergunta de trabalho sobre testes de XSS.
  2. Registe as fontes de dados e as evidências necessárias: contexto, codificação, CSP, stored/reflected/DOM.
  3. Crie uma Baseline curta de comportamento correto ou resultado esperado.
  4. Execute o teste mínimo num ambiente de laboratório e guarde tempo, input e output.
  5. Construa uma Timeline ou tabela de comparação e separe facto de interpretação.
  6. Faça um Pivot para uma fonte adicional para confirmar ou refutar a explicação inicial.
  7. Resuma a decisão, limitações, ação recomendada e critério de Reteste.

Cenário Prático

O cenário escolhido é o mapeamento de Input-to-Sink numa aplicação de laboratório. O objetivo do exercício não é provar a capacidade de ataque, mas sim praticar a recolha, comparação e documentação de forma segura. Antes de iniciar o trabalho, definem-se dados fictícios, uma janela de tempo e um resultado esperado.

No final do exercício, deve-se apresentar um produto que outro analista ou testador possa rever: uma imagem ou Export da evidência, um Timeline curto, uma hipótese inicial, uma evidência de confirmação, uma limitação e uma recomendação. Quando não há evidência suficiente, a conclusão correta é que o cenário não foi comprovado.

FaseO que é executadoProduto
PreparaçãoDefina Scope, tempo e objetivo. Registe quais campos ou evidências de contexto, codificação, CSP são esperados.Plano de teste curto
Criação de DadosExecute uma ação segura e simulada relacionada com o teste de XSS, sem informações reais ou impacto no sistema de produção.Evento/Pedido/Fluxo controlado
RecolhaRecolha a evidência bruta e o contexto de uma fonte adicional. Verifique o fuso horário, identificadores e integridade.Duas evidências relacionadas
AnáliseEscreva o que cada evidência prova, o que não prova e qual é a explicação legítima possível.Conclusão provisória
ConclusãoEscolha fechar, escalar, encontrar ou ajustar; adicione uma recomendação e um Reteste.Produto documentado

Lista de Verificação Prática

  • Verifique e documente: Role e sessão.
  • Verifique e documente: Endpoint e método.
  • Verifique e documente: Request/Response.
  • Verifique e documente: Object identifier.
  • Verifique e documente: Server-side effect.
  • Verifique e documente: Controle esperado e remediação.
  • Indique fuso horário, versão da ferramenta e hora de recolha.
  • Guarde os dados brutos antes de filtrar ou modificar.
  • Escreva o que a descoberta prova e o que ainda é desconhecido.
  • Defina um proprietário e a próxima ação com data.

Erros Comuns

  • Verificar apenas o Status code.
  • Depender de mudanças Client-side.
  • Usar um Payload perigoso.
  • Não verificar diferentes Roles.
  • Ignorar a lógica de negócios.
  • Reportar sem Request/Response limpos.

Aprofundamento Profissional: Qualidade, Contexto e Controlo

Um trabalho de qualidade no tópico de testes de XSS é medido também pela capacidade de reproduzir o caminho para a conclusão. Recomenda-se guardar Query, Filter, Scope, Timestamp, Dataset e a versão da ferramenta. Desta forma, é possível rever o mesmo caso após uma alteração de configuração ou após a receção de informações adicionais.

O contexto de negócios altera o significado técnico. Um ativo crítico, uma conta com permissões elevadas ou um serviço virado para a Internet requerem um nível de cuidado diferente de um laboratório isolado. No entanto, a Criticalidade não substitui a evidência: afeta a Prioridade e as ações de resposta, não a questão de se o comportamento realmente ocorreu.

A revisão por pares é uma forma eficaz de reduzir erros. Outro analista deve receber apenas a documentação e ser capaz de entender a pergunta, reproduzir a pesquisa e chegar à mesma conclusão. Se forem necessárias explicações orais, a documentação ainda não está completa.

Finalmente, cada produto deve tornar-se uma oportunidade de melhoria: uma fonte de log em falta, um Playbook pouco claro, uma Rule ruidosa, uma permissão ampla ou uma instrução de teste imprecisa. A documentação da ação e o Reteste são o que liga uma investigação pontual à melhoria contínua da capacidade da organização.

Resumo e CTA

Cross-Site Scripting: Stored, Reflected e DOM é um tópico que conecta conhecimento técnico à disciplina de trabalho. Comece com uma pergunta, recolha apenas evidências relevantes, mantenha o contexto e o tempo, e escolha uma ação que possa ser justificada e verificada novamente.

No curso de Cybersecurity & AI da HPI, estes princípios são praticados através de sistemas, logs e laboratórios. O próximo passo natural é passar para os artigos relacionados, realizar o exercício de laboratório e guardar o produto como parte de um portfólio profissional.

Perguntas frequentes

É permitido testar XSS num site público?

Não sem autorização explícita do proprietário do sistema. Mesmo um teste que pareça simples pode alterar dados, ativar mecanismos de defesa ou ser considerado acesso não autorizado.

O que fazer quando faltam alguns dados?

Documente o que falta, verifique uma fonte alternativa e reduza o nível de confiança. Não preencha campos por suposição ou apresente 'Unknown' como correto.

Quanto tempo as evidências devem ser guardadas?

O tempo depende da política, regulamentação, custo e tipo de incidente. É importante definir antecipadamente Retention, Legal hold e a capacidade de exportar evidências num formato verificável.

Como praticar sem comprometer um sistema real?

Utilize máquinas virtuais, dados simulados, CTF ou um laboratório dedicado. Em testes autorizados, defina Scope, Stop conditions e backup antes de iniciar o trabalho.

Quer verificar se este percurso é para si?

Deixe os seus dados e um consultor da HPI ligará para uma breve conversa de adequação, sem compromisso.

Os seus dados são armazenados em segurança.

Para estudos de SOC e cibersegurança no programa Cybersecurity & AI

Quer os detalhes do programa? Deixe os seus dados e entraremos em contacto.

Artigos relacionados