Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-2020-28874 — CVE-2020-28874 | Kitploit
Ferramentas/GitHubGitHub/varandinawer/cve-2020-28874
Escalada de PrivilégiosAtaques de SenhaAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubvarandinawer/cve-2020-28874

CVE-2020-28874

CVE-2020-28874

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

Este repositório contém a descrição da vulnerabilidade encontrada (CVE-2020-28874) no ProjectSend versão r1270.

Agradeço aos meus colegas da Entelgy Innotec Security por me incentivarem a melhorar!

CVE-2020-28874: Escalação de Privilégio

Descrição

A vulnerabilidade está no componente de redefinição de senha; um atacante pode alterar a senha de qualquer utilizador conhecido pelo seu nome de utilizador, como admin, sem um token válido.

Isto é possível porque o backend não limpa o $user_data com os dados do utilizador carregados a partir do nome de utilizador fornecido.

 if (!empty($_GET['token']) && !empty($_GET['user'])) {
        $got_token	= $_GET['token'];
        $got_user	= $_GET['user'];

        /**
         * Get the user's id
         */
        $user_data = get_user_by_username($got_user);
        ....
        }

E utiliza o estado dessa variável para continuar o processo de redefinição da senha.

    if ($_POST) {
        /**
         * Clean the posted form values.
         */
        $form_type = encode_html($_POST['form_type']);
        
        switch ($form_type) {
        ----
            case 'new_password':
                if (!empty($user_data['id'])) {
                    $reset_password_new = $_POST['password'];
                    ...
                }
        ...
        }

Ataque

Para tal, o atacante precisa de criar um pedido POST, com um parâmetro "token" inválido e o parâmetro "user" com o nome de utilizador alvo na query string; também precisa de adicionar o "form_type" como "new_password", a "password" com a nova senha desejada e o csrf_token com um válido (proveniente do formulário de login; o formulário de redefinição de senha não o fornece) no corpo do pedido.

Neste repositório, pode encontrar um script em python para explorar a vulnerabilidade e um contentor docker para a testar.

Utilização

git clone https://github.com/varandinawer/CVE-2020-28874_CVE-2020-28875.git
cd ./CVE-2020-28874_CVE-2020-28875/docker-r1270
docker-compose up 
#Para concluir o processo de instalação do ProjectSend, vá a http://localhost no navegador e siga as instruções para configurar uma conta de administrador
cd .. 
python CVE-2020-28874.py --url http://localhost --user admin --pwd newAdminP4ssword*

Correção

Atualize para a versão r1295 ou superior.

Baixar ferramenta