DOM XSS armazenado

Apr 07 2023
Descobrir e solucionar uma falha crítica de segurança
Encontrei uma vulnerabilidade Stored DOM XSS ao testar o aplicativo da web. O aplicativo online possui uma área onde os usuários podem inserir dados a serem armazenados no banco de dados e apresentados nas páginas subsequentes, onde está localizada a vulnerabilidade.
captura de tela do autor

Encontrei uma vulnerabilidade Stored DOM XSS ao testar o aplicativo da web. O aplicativo online possui uma área onde os usuários podem inserir dados a serem armazenados no banco de dados e apresentados nas páginas subsequentes, onde está localizada a vulnerabilidade.

Um invasor pode usar essa falha para executar um código arbitrário no navegador da vítima e potencialmente roubar informações confidenciais ou comprometer completamente a máquina da vítima.

Quando um usuário insere uma entrada cuidadosamente construída em um campo que aparece nas páginas subseqüentes do programa, a vulnerabilidade é ativada.

A entrada não é higienizada adequadamente antes de ser salva no banco de dados e exibida em sites subsequentes, permitindo que um invasor insira códigos HTML e JavaScript arbitrários.

Esse código é executado pelo navegador da vítima quando ela acessa o site vulnerável, permitindo que o invasor roube dados confidenciais ou realize atividades em nome da vítima.

Passos para reproduzir:

  1. Efetue login no aplicativo da web como um usuário comum
  2. Navegue até a seção onde os dados são inseridos e armazenados no banco de dados
  3. Insira a seguinte carga útil em um campo de texto:
  4. "><img src="x" onerror="alert(1)">
    

6. A mensagem de alerta “1” será exibida.

Prova de conceito:

Aqui estou fornecendo um laboratório para praticar xss dom armazenado.

Impacto:

Essa vulnerabilidade pode ser usada por um invasor para obter dados confidenciais, como senhas de usuários, tokens de sessão e dados privados.

Além de fazer coisas como transferir dinheiro, fazer compras não autorizadas ou alterar as configurações da conta em nome da vítima, eles podem usá-lo para fazer isso. Como dá ao invasor acesso total à conta da vítima, essa vulnerabilidade tem sérias consequências.

Recomendações:

  • Limpe todas as entradas do usuário antes de armazená-las no banco de dados ou exibi-las em outras páginas do aplicativo.
  • Implemente cabeçalhos de política de segurança de conteúdo (CSP) para impedir a execução de scripts embutidos e limitar as fontes de scripts externos.
  • Realize avaliações regulares de segurança do aplicativo da Web para identificar e solucionar quaisquer outras vulnerabilidades.