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-22963 — Exploit de prova de conceito para CVE-2025-22963, uma vulnerabilidade de CSRF no Teedy v1.11 que permite a tomada de conta através do endpoint de alteração de informações do usuário. | Kitploit
Ferramentas/GitHubGitHub/gmh5225/cve-2025-22963
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAutenticação
GitHubgmh5225/cve-2025-22963

CVE-2025-22963

Exploit de prova de conceito para CVE-2025-22963, uma vulnerabilidade de CSRF no Teedy v1.11 que permite a tomada de conta através do endpoint de alteração de informações do usuário.

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

Visão Geral

A vulnerabilidade de falsificação de solicitação entre sites (CSRF) no Teedy versões <= v1.11 permite que atacantes remotos forcem um usuário final a alterar suas informações de usuário (nome de usuário, senha, etc...) no aplicativo web no qual ele está atualmente autenticado.

Vulnerabilidade

O endpoint de alteração de informações do usuário é /api/user/:username.
Este endpoint apenas verifica o auth_token nos cookies para autorização.
O valor do auth_token pode ser usado de outros sites de origem.

root@kitploit:~
POST /api/user/admin HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Content-Length: 173
Origin: http://localhost:8080
Connection: keep-alive
Referer: http://localhost:8080/
Cookie: auth_token=890b02eb-3e4b-4134-a523-56093a25952b
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=0

username=admin&groups=administrators&email=admin%40example.com&totp_enabled=false&storage_quota=0&storage_current=0&disabled=false&password=superSecure&passwordconfirm=superSecure

Portanto, fazer com que um usuário final visite o site que envia requisições para /api/user/:username leva a alterar as informações do usuário final para as de um atacante remoto.
As informações do usuário incluem a senha.
Isso pode levar à tomada de conta.
Esse ataque é possível quando um atacante remoto conhece o nome de usuário de um usuário final.
Esse ataque é explorável tanto contra usuários administradores quanto convidados.
Nesta situação, um atacante pode assumir o usuário da vítima definindo a senha do usuário vítima para a senha do atacante e fazendo login no usuário da vítima com a senha do atacante.

Correção

Para corrigir essa vulnerabilidade, anexe um token CSRF ao solicitar para /api/user/:username

root@kitploit:~
POST /api/user/admin HTTP/1.1

...

username=admin&groups=administrators&email=admin%40example.com&totp_enabled=false&storage_quota=0&storage_current=0&disabled=false&password=superSecure&passwordconfirm=superSecure&csrf_token=<randomly generated token>

Isso protege contra ataques CSRF porque um atacante não conhece o valor do token CSRF.
Para usar o token CSRF de forma segura, siga estes passos

  1. Incorpore um token CSRF gerado aleatoriamente no formulário da requisição.
  2. Use o cabeçalho HTTP CORS para proteger o token CSRF de vazamento por outros sites de origem.

Primeiro, crie estes arquivos no diretório docs/docs-web/src/main/java/com/sismics/docs/rest/util.

  • CSRFToken.java
  • RandomTokenGenerator.java CSRFToken.java
root@kitploit:~
package com.sismics.docs.rest.util;

import java.util.Map;
import java.util.HashMap;
import java.security.SecureRandom;
import com.sismics.docs.rest.util.RandomTokenGenerator;

/**
 * CSRF Token Class that manages users' CSRF Token
 */
public class CSRFToken {

    private static CSRFToken instance = new CSRFToken();
    private Map<String, String> tokenMap = new HashMap<String, String>();

    private CSRFToken() {}

    public static CSRFToken getInstance() {
        return instance;
    }

    public void setToken(String userName, String token) {
        tokenMap.put(userName, token);
    }

    public String getToken(String userName) {
        if (tokenMap.containsKey(userName)) {
            return tokenMap.get(userName);
        }
        // avoid using predictable string because bruteforcing this value could lead to bypass CSRF check
        return RandomTokenGenerator.generate();
    }

    public boolean validate(String userName, String token) {
        return this.getToken(userName).equals(token);
    }
}

RandomTokenGenerator.java

root@kitploit:~
package com.sismics.docs.rest.util;

import java.security.SecureRandom;
import java.lang.StringBuilder;
import java.lang.String;

/**
 * A token generator for CSRF Token
 */
public class RandomTokenGenerator {

    public static String generate() {
        byte[] bytes = new byte[16];
        SecureRandom rand = new SecureRandom();
        rand.nextBytes(bytes);
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }
}

Depois disso, altere estes arquivos para o seguinte.

  • docs/docs-web/src/main/webapp/src/app/docs/controller/settings/SettingsUserEdit.js
  • docs/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java UserResourceDiff1 UserResourceDiff2 SettingsUserEditDiff1 SettingsUserEditDiff2

Referências

sismics - Teedy (https://github.com/sismics/docs)
portswigger - Cross-site request forgery (CSRF) (https://portswigger.net/web-security/csrf)
Mozilla - Exemplos de cenários de controle de acesso (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#examples_of_access_control_scenarios)

Créditos

Obrigado, Ayato por me ensinar como reportar uma vulnerabilidade.

Baixar ferramenta