Начну с предисловия: хочу воссоздать условия, когда при загрузке и отображении изображения выполняется php-код внутри него. Это тест на безопасность. Картинка реальная, внутрь нее дописан php-код. Судя по многочисленным статьям, код может выполняться, но у меня после загрузки на сервак, картинка отображается на сайте как ни в чем не бывало. Что должно быть установлено или выполняться на серваке такое, чтобы выполнился код внутри картинки? В одной из статей я встретил такую запись: Код (Text): require($someImage); Зачем вообще может понадобиться инклудить картинки таким образом? И главное, я пробовал, но код внутри все-равно не выполнился.
да вы че это ж просто как палка кто желает, можете мою статеечку заценить https://medium.com/@igordata/php-ru...execution-of-user-uploaded-files-6ff021897389 --- Добавлено --- ВЖУХ!!1
ну насчет хтаацесс не сказано ни в одной из статей. Хотя я понимаю о чем вы. Но тогда сначала злоумышленнику придется добраться до хтаацесс и разрешить исполнение изображений. Думаю, это отдельный случай. Просто, скорее всего изображения как-то по хитрому обрабатываются или выводятся на сайт, что позволяет выполнять код внутри. Может есть идеи? Нужен мозговой штурм )) --- Добавлено --- сейчас заценю
по какому такому хитрому? пхп-интерпретатор просто ищет <?php и выполняет код дальше. ищет он это в любом файле, каком дашь
господа вам делать нех ? давать пользователю произвольные манипуляции на сервере сайта, подключить загрузить, выполнить. Может еще и крон, нее... кнопку снести сайт на главной залепить.
Да, это то, что я ищу. Одно только не понятно, зачем это может понадобиться на реальном сайте? Поскольку об этом пишут статьи, значит встречаются и сайты с такими уязвимостями? Не могу придумать ни одного случая где бы это могло применяться на живом сайте.
То, что Игорь в своей статье показал - фактически криво сделанный самопальный роутер --- Добавлено --- PHP: include $folder . "/" . $_GET['some'];
это ровно тот же случай что и Код (Text): 'SELECT * FROM `users` WHERE `login` = "' . $_GET['login'] . '"' только про файлы
Поразмышляю на тему "зачем ... ?". Первое что в голову приходит - рукожопый программист. Вместо того чтоб отдавать статику сервером - он нагружает этой функцией пхп-машину. Это в целом не преступление, но тут возникает еще и отсутствие мозга у программиста - подключение файла пхп-машиной обязывает пхп-машину произвести разбор этого файла на поиск лексем языка пхп вне зависимости от того пхп это файл или картинка. То есть, отдать статику пхп-машиной менее ресурсоёмко - через ридфайл. Чуть более ресурсоёмко - через какой-нибудь эхо+файл-гет-контентс. Ну и фопен + циклк фридов - заканчивают полку экспонатов инструментов для извращений. Но программист знает только про про инклюд (и только про инклюд и ни слова про реквайр и их однократных аналогов), поэтому делает потенциальную дыру в безопасности. Как-то так.