CVE-2021-46080
Titolo dell'Exploit: Vehicle Service Management System - 'Multiple' Cross-Site Request Forgery (CSRF) che porta a Stored Cross Site Scripting (XSS)
Autore dell'Exploit: SANU P.L
CVE: CVE-2021-46080
CVSS: 4.8 MEDIUM
Riferimenti:
Descrizione:
Una vulnerabilità di Cross Site Request Forgery (CSRF) esiste in Vehicle Service Management System 1.0. Un attacco CSRF riuscito porta a una vulnerabilità di Stored Cross Site Scripting.
1. Vehicle Service Management System - 'Elenco Meccanici' (/admin/?page=mechanics)
Exploit:
- Visita il pannello di amministrazione http://localhost/vehicle_service/admin
- Crea due account amministratore.
- Accedi con l'account Admin-1 nel Browser A (Chrome)
- Accedi con l'account Admin-2 nel Browser B (Firefox)
- Nell'account Admin-1 (Chrome) vai alla sezione Elenco Meccanici e clicca sul pulsante Crea Nuovo.
- Inietta il payload sottostante nel campo Nome Completo.
Payload:
"><script>alert(document.cookie)</script>
- Clicca sul pulsante Salva.
- Cattura la richiesta in burpsuite e genera il file CSRF Html.
- Salva il file CSRF Html, ad esempio: CSRF.html
- Nel Browser B (Firefox) apri il file CSRF.html.
- Vai alla sezione Elenco Meccanici nel Browser B (Firefox).
- Il codice javascript malevolo viene attivato.
2. Vehicle Service Management System - 'Richieste di Servizio' (/admin/?page=service_requests)
Exploit:
- Visita il pannello di amministrazione http://localhost/vehicle_service/admin
- Crea due account amministratore.
- Accedi con l'account Admin-1 nel Browser A (Chrome)
- Accedi con l'account Admin-2 nel Browser B (Firefox)
- Nell'account Admin-1 (Chrome) vai alla sezione Richieste di Servizio e clicca sul pulsante Crea Nuovo.
- Inietta il payload sottostante nel campo Contatto Proprietario.
Payload:
"><script>alert(document.cookie)</script>
- Clicca sul pulsante Salva Richiesta.
- Cattura la richiesta in burpsuite e genera il file CSRF Html.
- Salva il file CSRF Html, ad esempio: CSRF.html
- Nel Browser B (Firefox) apri il file CSRF.html.
- Vai alla sezione Richieste di Servizio nel Browser B (Firefox).
- Scegli la Richiesta di Servizio appena creata e clicca su Azione in Visualizza.
- Il codice javascript malevolo viene attivato.
3. Vehicle Service Management System - 'Elenco Categorie' (/admin/?page=maintenance/category)
Exploit:
- Visita il pannello di amministrazione http://localhost/vehicle_service/admin
- Crea due account amministratore.
- Accedi con l'account Admin-1 nel Browser A (Chrome)
- Accedi con l'account Admin-2 nel Browser B (Firefox)
- Nell'account Admin-1 (Chrome) vai alla sezione Elenco Categorie e clicca sul pulsante Crea Nuovo.
- Inietta il payload sottostante nel campo Nome Categoria.
Payload:
"><script>alert(document.cookie)</script>
- Clicca sul pulsante Salva.
- Cattura la richiesta in burpsuite e genera il file CSRF Html.
- Salva il file CSRF Html, ad esempio: CSRF.html
- Nel Browser B (Firefox) apri il file CSRF.html.
- Vai alla sezione Elenco Categorie nel Browser B (Firefox).
- Il codice javascript malevolo viene attivato.
4. Vehicle Service Management System - 'Elenco Servizi' (/admin/?page=maintenance/services)
Exploit:
- Visita il pannello di amministrazione http://localhost/vehicle_service/admin
- Crea due account amministratore.
- Accedi con l'account Admin-1 nel Browser A (Chrome)
- Accedi con l'account Admin-2 nel Browser B (Firefox)
- Nell'account Admin-1 (Chrome) vai alla sezione Elenco Servizi e clicca sul pulsante Crea Nuovo.
- Inietta il payload sottostante nel campo Nome Servizio.
Payload:
"><script>alert(document.cookie)</script>
- Clicca sul pulsante Salva.
- Cattura la richiesta in burpsuite e genera il file CSRF Html.
- Salva il file CSRF Html, ad esempio: CSRF.html
- Nel Browser B (Firefox) apri il file CSRF.html.
- Vai alla sezione Elenco Servizi nel Browser B (Firefox).
- Il codice javascript malevolo viene attivato.
5. Vehicle Service Management System - 'Elenco Utenti' (/admin/?page=user/list)
Exploit:
- Visita il pannello di amministrazione http://localhost/vehicle_service/admin
- Crea due account amministratore.
- Accedi con l'account Admin-1 nel Browser A (Chrome)
- Accedi con l'account Admin-2 nel Browser B (Firefox)
- Nell'account Admin-1 (Chrome) vai alla sezione Elenco Utenti e clicca sul pulsante Crea Nuovo.
- Inietta il payload sottostante nel campo Nome.
Payload:
"><script>alert(document.cookie)</script>
- Clicca sul pulsante Salva.
- Cattura la richiesta in burpsuite e genera il file CSRF Html.
- Salva il file CSRF Html, ad esempio: CSRF.html
- Nel Browser B (Firefox) apri il file CSRF.html.
- Vai alla sezione Elenco Utenti nel Browser B (Firefox).
- Il codice javascript malevolo viene attivato.
6. Vehicle Service Management System - 'Impostazioni' (/admin/?page=system_info)
Exploit:
- Visita il pannello di amministrazione http://localhost/vehicle_service/admin
- Crea due account amministratore.
- Accedi con l'account Admin-1 nel Browser A (Chrome)
- Accedi con l'account Admin-2 nel Browser B (Firefox)
- Nell'account Admin-1 (Chrome) vai alla sezione Impostazioni.
- Inietta il payload sottostante nel campo Nome Sistema.
Payload:
"><script>alert(document.cookie)</script>
- Clicca sul pulsante Aggiorna.
- Cattura la richiesta in burpsuite e genera il file CSRF Html.
- Salva il file CSRF Html, ad esempio: CSRF.html
- Nel Browser B (Firefox) apri il file CSRF.html.
- Vai alla sezione Impostazioni nel Browser B (Firefox).
- Il codice javascript malevolo viene attivato.
Impatto:
La vulnerabilità di Cross-Site Request Forgery esiste in più endpoint e porta a una vulnerabilità di Stored Cross Site Scripting.
Mitigazione:
Si consiglia di implementare quanto segue:
- Imprevedibile con alta entropia, come per i token di sessione in generale.
- Legato alla sessione dell'utente.
- Strettamente validato in ogni caso prima che l'azione pertinente venga eseguita.