Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-68147-OSPOS-Stored-XSS — Repositório de PoC para CVE-2025-68147: Cross-Site Scripting (XSS) Armazenado no OpenSourcePOS. A vulnerabilidade permite escalonamento de privilégios por meio de injeção de JavaScript malicioso no módulo Store Config. Inclui detalhes do payload e verificação do patch (v3.4.0). Pesquisador de Segurança: Aditya Singh (Nixon-H). | Kitploit
Ferramentas/GitHubGitHub/nixon-h/cve-2025-68147-ospos-stored-xss
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubnixon-h/cve-2025-68147-ospos-stored-xss

CVE-2025-68147-OSPOS-Stored-XSS

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

21há 2 mesesAinda não revisado

Repositório de PoC para CVE-2025-68147: Cross-Site Scripting (XSS) Armazenado no OpenSourcePOS. A vulnerabilidade permite escalonamento de privilégios por meio de injeção de JavaScript malicioso no módulo Store Config. Inclui detalhes do payload e verificação do patch (v3.4.0). Pesquisador de Segurança: Aditya Singh (Nixon-H).

Compartilhar

CVE-2025-68147: Cross-Site Scripting (XSS) Armazenado no OpenSourcePOS

MetadadosDetalhes
ID do CVECVE-2025-68147
SeveridadeAlta CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
Tipo de VulnerabilidadeCross-Site Scripting Armazenado (CWE-79)
Versões AfetadasOpenSourcePOS v3.4.0, v3.4.1
Versão Corrigidav3.4.2
Componente VulnerávelMódulo de Configuração da Loja (campo Política de Devolução)
RelatorAditya Singh (Nixon-H)

📝 Resumo Executivo

Uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado foi descoberta no módulo de Configuração da Loja do OpenSourcePOS. O aplicativo não sanitizou adequadamente a entrada fornecida pelo usuário no campo "Política de Devolução" antes de armazená-la na tabela de banco de dados ospos_app_config.

Essa falha permitiu que um atacante autenticado com privilégios de configuração (ou um atacante que explorasse uma cadeia CSRF separada) injetasse payloads JavaScript arbitrários. Como a "Política de Devolução" é renderizada dinamicamente em todos os recibos de venda, o payload injetado é executado automaticamente no navegador de qualquer usuário — incluindo caixas com privilégios baixos, outros administradores ou clientes — sempre que um recibo é gerado ou visualizado.


🕵️‍♂️ Análise Técnica da Causa Raiz

1. A Lógica Vulnerável

A vulnerabilidade reside no template de visualização do recibo: app/Views/sales/receipt_default.php.

O aplicativo recupera a string "Política de Devolução" do array de configuração global ($this->config['return_policy']) e a prepara para exibição.

  • O Erro: Os desenvolvedores usaram a função nativa do PHP nl2br() para converter quebras de linha em quebras de linha HTML (<br>).
  • A Falha: nl2br() não sanitiza caracteres especiais de HTML. Ela deixa tags como <script>, `` e atributos onload completamente intactos.

Código Vulnerável (Antes do Patch):

root@kitploit:~
<div id="sale_return_policy">
    <?php echo nl2br($this->config['return_policy']); ?>
</div>

2. Persistência no Banco de Dados

Quando um administrador salva a configuração, o payload é armazenado bruto no banco de dados.

  • Tabela: ospos_app_config
  • Chave: return_policy
  • Valor: Policy Text... <script>alert('XSS')</script>

Como não há sanitização de entrada no lado do controlador (Config.php) nem escape de saída no lado da visão (receipt_default.php), o aplicativo está vulnerável a XSS Armazenado.


💥 Prova de Conceito (PoC)

Vetor de Ataque

O ataque tem como alvo o painel de Configuração da Loja, mas impacta o módulo Vendas/Recibo.

  1. Ponto de Entrada: http://[TARGET]/config (solicitação POST para salvar a configuração)
  2. Ponto de Execução: http://[TARGET]/sales/receipt/[SALE_ID]

Exploração Passo a Passo

Passo 1: A Injeção Entramos como Administrador e navegamos até Configuração da Loja -> Geral. Na área de texto "Política de Devolução", injetamos o seguinte payload específico:

root@kitploit:~
Standard Return Policy: No Refunds.
<script>alert('XSS_BY_NIXON_SUCCESSFUL')</script>

Passo 2: Persistência Ao clicar em "Enviar", o aplicativo enviou uma solicitação POST para /config/save. O payload foi confirmado com sucesso no banco de dados.

Passo 3: O Gatilho Para verificar o impacto em outros usuários:

  1. Fizemos logout e login novamente como Caixa (conta de baixo privilégio).
  2. Navegamos até o módulo Vendas.
  3. Adicionamos um item de teste ao carrinho e clicamos em "Concluir Venda".
  4. Resultado: O aplicativo redireciona para a visualização do recibo (por exemplo, http://localhost/sales/receipt/1). O navegador analisa a div return_policy, encontra a tag <script> e executa imediatamente o JavaScript.

Resultado Observado: Uma caixa de alerta do navegador apareceu com a mensagem: XSS_BY_NIXON_SUCCESSFUL.

📷 Prova em Mídia

Captura de Tela 1: O Alerta Disparado

Captura de Tela 2: Payload na Configuração

🎥 Demonstração em Vídeo: Clique para Baixar / Assistir ao Vídeo do PoC


⚠️ Cenários de Impacto

Esta é uma vulnerabilidade de Escopo Alterado (S:C) porque o ataque é armazenado no servidor, mas é executado no contexto do navegador da vítima.

  1. Escalonamento de Privilégios e Assunção de Conta:
  • Cenário: Um atacante injeta um payload JavaScript projetado para roubar cookies de sessão.
  • Execução: Um Super Administrador visualiza um recibo antigo (por exemplo, /sales/receipt/105). O script é executado silenciosamente, enviando document.cookie (contendo o ID de ospos_session) para o servidor do atacante.
  • Impacto: O atacante sequestra a sessão do Super Admin, obtendo controle total sobre o sistema sem precisar de senha.
  1. Criação de Administrador Auto-Propagável (Wormable):
  • Cenário: O payload é um script que usa AJAX (XMLHttpRequest) para realizar ações administrativas.
  • Execução: Quando um Administrador conectado visualiza o recibo, o script força o navegador dele a enviar uma solicitação POST oculta para /employees/save.
  • Impacto: Uma nova conta de Administrador (por exemplo, hacker / password123) é criada instantaneamente em segundo plano. A vítima não vê nada além do recibo, enquanto o atacante ganha uma porta dos fundos permanente.
  1. Desfiguração (Defacement) e Phishing:
  • Cenário: O atacante modifica o DOM para alterar as informações financeiras do recibo.
  • Execução: O script da "Política de Devolução" reescreve o rodapé ou as instruções de pagamento.
  • Impacto: Os recibos exibem dados bancários fraudulentos ou endereços de carteiras de criptomoedas ("Por favor, transfira o pagamento para..."), levando a fraudes financeiras contra clientes ou contra o negócio.

🛡️ Remediação

A vulnerabilidade foi corrigida no OpenSourcePOS v3.4.2.

O mantenedor aplicou um patch que implementa Codificação de Saída Sensível ao Contexto. O valor de configuração agora é envolvido pela função auxiliar global esc() do CodeIgniter antes de ser passado para nl2br().

O Patch (Commit 22297a):

root@kitploit:~
<div id="sale_return_policy">
    <?php echo nl2br(esc($this->config['return_policy'])); ?>
</div>

Verificação: Após atualizar para a v3.4.2, o mesmo payload é renderizado como texto inofensivo:

Standard Return Policy: No Refunds. &lt;script&gt;alert('XSS_BY_NIXON_SUCCESSFUL')&lt;/script&gt;


📅 Linha do Tempo da Divulgação

  • 2025-12-12: Vulnerabilidade descoberta por Aditya Singh (Nixon-H) durante uma auditoria de segurança manual.
  • 2025-12-13: Relatório de divulgação responsável enviado ao mantenedor (Jeroen Peelaerts) por e-mail/GitHub.
  • 2025-12-14: Vulnerabilidade confirmada pelo mantenedor. CVE-2025-68147 reservado.
  • 2025-12-14: Patch desenvolvido (Commit 22297a) e verificado pelo pesquisador.
  • 2025-12-19: Patch lançado na versão 3.4.2.
  • 2025-12-19: Divulgação pública por meio do GitHub Security Advisory.

🔗 Referências

  • Aviso de Segurança: GHSA-xgr7-7pvw-fpmh
  • Patch: Commit 22297a
  • Relator: Aditya Singh (Nixon-H)
Baixar ferramenta