В движка за създаване на уеб форуми открито е няколко , позволяващи да се организира многостепенна атака за изпълнение на произволен 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 код. Ако съобщението е прегледано от администратора, то в контекста на привилегированата сесия ще бъде експлоатирана втората уязвимост.
Източник: opennet.ru
