В движението за създаване на уеб форуми бяха открити няколко , позволяващи организиране на многостепенна атака за изпълнение на произволен PHP код на сървера. Проблемите са отстранени в версията .
Първата уязвимост се съдържа в модулите за публикуване и изпращане на лични съобщения и позволява внедряване на JavaScript код (XSS), който ще се изпълни в браузъра при преглед на публикацията или полученото съобщение. Внедряването на JavaScript е възможно поради неправилно преобразуване в HTML на вложените BBCode. По-специално, тагът
«
и тя при обработка на BBCode «» ще бъде преобразувана в тага
‹iframe src=»youtube.com/xyz[url]http://onload=evilCode()[/url]»›‹/iframe›
, а след обработката на останалите BBCode в
‹iframe src=»youtube.com/xyz‹a href=»http://onload=evilCode()»›..»›‹/iframe›
Следователно двойната кавичка в ‘href=»‘ затваря атрибута «src» и onLoad се обработва в контекста на iframe.
Втората уязвимост позволява при наличието на права на администратора на форума да се запази PHP скрипт в файловата система на уеб сървъра и да се организира неговото изпълнение. Проблемът присъства в кода за управление на стиловете за активната тема, който позволява генериране на нови CSS файлове. Подобни файлове се запазват с добавяне на разширението «.css», но размерът на полето в БД за името на файла е ограничен до 30 символа. Следователно, файлът може да бъде наречен «26символа.php.css». При запис в БД излишните символи ще бъдат отстранени и в крайна сметка ще се запише името «26символа.php». След това от панела за администратора на форума може да се генерира нов стил и файлът ще бъде записан в каталога «cache» с php разширение.
За провеждане на атака, злоумишленикът може да изпрати на администратора на форума специално форматирано съобщение или да публикува подобно съобщение във форума. При преглед на това съобщение в браузъра в рамките на текущата сесия във форума и с правата на потребителя, който чете съобщението, ще се изпълни зададеният от атакуващия JavaScript код. Ако съобщението е прегледано от администратора, втората уязвимост ще бъде експлоатирана за изпълнение на PHP кода в контекста на привилегирована сесия.
Източник: opennet.ru
