Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-28874 — CVE-2020-28874 | Kitploit
Strumenti/GitHubGitHub/varandinawer/cve-2020-28874
Escalation di PrivilegiAttacchi alle PasswordAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubvarandinawer/cve-2020-28874

CVE-2020-28874

CVE-2020-28874

Vedi Repository
5 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Questo repository contiene la descrizione della vulnerabilità trovata (CVE-2020-28874) nella release r1270 di ProjectSend.

Ringrazio i miei colleghi di Entelgy Innotec Security per avermi spinto a migliorare!

CVE-2020-28874: Escalation dei privilegi

Descrizione

La vulnerabilità è nel componente di reset della password; un attaccante può cambiare la password di qualsiasi utente noto tramite il suo nome utente, come admin, senza un token valido.

Questo è possibile perché il backend non pulisce $user_data con i dati utente caricati dal nome utente fornito.

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

E usa lo stato di quella variabile per continuare il processo di reset della password.

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

Attacco

Per farlo, l'attaccante deve creare una richiesta POST, con un parametro "token" non valido e il parametro "user" con il nome utente bersaglio nella query string; deve inoltre aggiungere "form_type" come "new_password", "password" con la nuova password desiderata, e il csrf_token con uno valido (dal modulo di login, il modulo di reset della password non lo fornisce) nel corpo della richiesta.

In questo repository puoi trovare uno script Python per sfruttare la vulnerabilità e un container Docker per testarla.

Utilizzo

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*

Correzione

Aggiorna alla versione r1295 o successiva.

Scarica lo strumento