Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-28874 — CVE-2020-28874 | Kitploit
Outils/GitHubGitHub/varandinawer/cve-2020-28874
Escalade de PrivilègesAttaques de Mots de PasseAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHubvarandinawer/cve-2020-28874

CVE-2020-28874

CVE-2020-28874

Voir le dépôt
il y a 5 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2020-28874 : Élévation de privilèges

Description

La vulnérabilité se trouve dans le composant de réinitialisation de mot de passe ; un attaquant peut modifier le mot de passe de n'importe quel utilisateur connu à partir de son nom d'utilisateur, par exemple admin, sans jeton valide.

Cela est possible car le backend ne nettoie pas la variable $user_data avec les données utilisateur chargées à partir du nom d'utilisateur fourni.

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);
        ....
        }

Et il utilise l'état de cette variable pour poursuivre le processus de réinitialisation du mot de passe.

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'];
                    ...
                }
        ...
        }

Attaque

Pour ce faire, l'attaquant doit construire une requête POST avec un paramètre « token » invalide et le paramètre « user » contenant le nom d'utilisateur cible dans la chaîne de requête. Il doit également ajouter dans le corps de la requête « form_type » avec la valeur « new_password », « password » avec le nouveau mot de passe souhaité, et « csrf_token » avec un jeton valide (fourni par le formulaire de connexion, mais pas par le formulaire de réinitialisation de mot de passe).

Dans ce dépôt, vous trouverez un script Python pour exploiter la vulnérabilité et un conteneur Docker pour la tester.

Utilisation

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*

Correctif

Mettez à niveau vers la version r1295 ou une version ultérieure.

Télécharger l’outil