Open InfoSec Days Томск, 2011 Глава 1. Атаки на веб-приложения и методы защиты Занятие 3. File Inclusion
Отказ от ответственности Информация предоставлена исключительно в ознакомительных целях. Всю ответственность за использование и применение полученных знаний каждый участник берет на себя
File Inclusion Один из способов взлома веб-сайтов, работающих на PHP, заключающийся в выполнении постороннего кода на серверной стороне. Потенциально опасными функциями являются: – eval(), – preg_replace() (с модификатором «e»), – require_once(), – include_once(), – include(), – require(), – create_function(). Угрозы – Выполнение произвольного PHP кода – Выполнение произвольных команд на сервере
«Интересные» места Смена оформления Выбор подключаемого модуля Другие случаи, где include() зависит от входящих параметров
Remote File Inclusion Remote File Inclusion - это подключение произвольного файла из внешнего сервера в работу уязвимого файла. Для эксплуатации необходимы два условия в настройках php.ini: allow_url_fopen = On allow_url_include = On Пример кода:
Local File Inclusion Local File Inclusion - подключение произвольного файла на локальном сервере в работу уязвимого файла. Свой php код можно внедрить через: – Логи (веб-сервера, фтп-сервера и другие); – Файлы содержащие переменные окружения (включая данные о клиенте (читать как о браузере)); – Файлы сессии; – Загружаемые пользователем файлы; – Другие файлы (например файлы создаваемые скриптом (например гостевая книга) который использует файловую систему для хранения данных).
Null Byte Injection
Perl $buffer = $ENV{'QUERY_STRING'}; $fn = '/home/userx/data/'.$buffer. '.jpg'; open (FILE,"
Ссылки (!!!) on on
Презентация, материалы