Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-28874 — CVE-2020-28874 | Kitploit
Herramientas/GitHubGitHub/varandinawer/cve-2020-28874
Escalada de PrivilegiosAtaques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubvarandinawer/cve-2020-28874

CVE-2020-28874

CVE-2020-28874

Ver Repositorio
hace 5 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Este repositorio contiene la descripción de la vulnerabilidad encontrada (CVE-2020-28874) en ProjectSend versión r1270.

Gracias a mis colegas de Entelgy Innotec Security por impulsarme a mejorar!

CVE-2020-28874: Escalada de privilegios

Descripción

La vulnerabilidad se encuentra en el componente de restablecimiento de contraseña; un atacante puede cambiar la contraseña de cualquier usuario conocido mediante su nombre de usuario, como admin, sin un token válido.

Esto es posible porque el backend no limpia $user_data con los datos del usuario cargados a partir del nombre de usuario proporcionado.

root@kitploit:~
 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);
        ....
        }

Y utiliza el estado de esa variable para continuar el proceso de restablecimiento de la contraseña.

root@kitploit:~
    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 ello, el atacante necesita crear una solicitud POST, con un parámetro "token" no válido y el parámetro "user" con el nombre de usuario objetivo en la cadena de consulta; también debe añadir en el cuerpo de la solicitud el “form_type” como “new_password”, “password” con la nueva contraseña deseada, y el csrf_token con uno válido (del formulario de inicio de sesión, el formulario de restablecimiento de contraseña no lo proporciona).

En este repositorio puedes encontrar un script de Python para explotar la vulnerabilidad y un contenedor Docker para probarla.

Uso

root@kitploit:~
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 
#To finish the process of ProjectSend installation, go to http://localhost in the browser and follow the indication to setup an admin account
cd .. 
python CVE-2020-28874.py --url http://localhost --user admin --pwd newAdminP4ssword*

Solución

Actualice a la versión r1295 o superior.

Descargar herramienta