Nel motore per la creazione di forum web sono state riscontrate diverse , che consentono di organizzare un attacco a più livelli per eseguire codice PHP arbitrario sul server. I problemi sono stati risolti nella versione .
La prima vulnerabilità è presente nei moduli di pubblicazione e invio di messaggi privati e consente l'inserimento di codice JavaScript (XSS), che verrà eseguito nel browser durante la visualizzazione del post o del messaggio ricevuto. L'inserimento di JavaScript è possibile a causa di una scorretta conversione in HTML dei BBCode nidificati. In particolare, il tag
«
e durante l'elaborazione del BBCode «» verrà convertito nel tag
‹iframe src=»youtube.com/xyz[url]http://onload=evilCode()[/url]»›‹/iframe›
, e dopo l'elaborazione degli altri BBCode in
‹iframe src=»youtube.com/xyz‹a href=»http://onload=evilCode()»›..»›‹/iframe›
Di conseguenza, le virgolette in ‘href=»‘ chiudono l'attributo «src» e onLoad viene elaborato nel contesto dell'iframe.
La seconda vulnerabilità consente, con i diritti di amministratore del forum, di salvare uno script PHP nel filesystem del server web e di eseguirlo. Il problema è presente nel codice di gestione degli stili per il tema attivo, che consente di generare nuovi file CSS. Tali file vengono salvati con l'aggiunta dell'estensione «.css», ma la dimensione del campo nel DB per il nome del file è limitata a 30 caratteri. Di conseguenza, è possibile denominare il file «26simboli.php.css». Durante la registrazione nel DB, i caratteri in eccesso verranno troncati e alla fine verrà salvato il nome «26simboli.php». Successivamente, tramite il pannello di amministrazione del forum, è possibile generare un nuovo stile e il file verrà registrato nella cartella «cache» con estensione php.
Per attuare un attacco, l'aggressore può inviare un messaggio appositamente formattato all'amministratore del forum o pubblicare un messaggio simile sul forum. Quando questo messaggio viene visualizzato nel browser durante la sessione corrente e con i diritti di un utente che sta visualizzando il messaggio, il codice JavaScript attaccato verrà eseguito. Se il messaggio è stato visualizzato dall'amministratore, viene sfruttata una seconda vulnerabilità per eseguire il codice PHP nel contesto di una sessione privilegiata.
Fonte: opennet.ru
