[php, mysql] уязвим ли код?
Ну, в этом месте вроде ничего сломать не получится. Разве что счётчик странно будет считать.
is_file(realpath должен быть более корректен.
ещё лучше is_readable, коль уж его скачивать затем собираются.
filename | varchar(128)
Можно засорять слешами, точками... ('////', ''/./././' и т.д.)...
Но вот возможность sql-инъекции похоже реально не существует
А все таки хочется ее получить
Так как отсутствует фильтрация (привычная, например убрать слэши) переменной file, то меня это заинтересовало...такая фильтрация нужна для отсутствия "php-иньекции".
от sql-иньекции достаточно заэскейпить параметры, что и сделано в коде с помощью функции mysql_real_escape_string
mysql_real_escape_stringСорри, mysql_real_escape_string появилась позже в ходе тестирования...
Естественно вопрос актуален для незаэскейпенной строки
на сервере винда или линукс?
Естественно вопрос актуален для незаэскейпенной строкиХорошее "естественно".
Тогда этот код типичный "Роберт дроп тейбл стьюдентс".
на сервере винда или линукс?Linux
Хорошее "естественно".Естественно = Если строка заэскейпенна, то тут не подкопаться
Тогда этот код типичный "Роберт дроп тейбл стьюдентс".
Тогда этот код типичный "Роберт дроп тейбл стьюдентс".мешает проверка на соответствие реальному файлу
с нулевым символом можно попробовать поиграться.
с нулевым символом можно попробовать поиграться.Пробовал
file=1.txt%00%27
file=1.txt%00
Файл нот фаунд (This file does not exist!)
../../../etc/config/blah-blah
такие файлы можно скачивать?
А апача в chroot директорию поместить?
../../../etc/config/blah-blahне имеет разницы зачрутен ли апач или нет. В скрипте используется header а не include поэтому нет смысла запрашивать пободные файлы, их все равно не прочесть
такие файлы можно скачивать?
Иначе бы работало
http://google.com/../../../../../../../../../etc/passwd
Например, попытаться передать в качестве 'file' строку с двойным переводом строки в конце - интересно, получиться ли обмануть ПХП таким образом. Правда ничего особенного этим не добъешься...
а какие еще сервисы есть на этом сервере. может там можно через что-нибудь создавать файлы с любыми именами
Оставить комментарий
Jekich
Есть скрипт на php - суть, счетчик скачивания файлов.Так как отсутствует фильтрация (привычная, например убрать слэши) переменной file, то меня это заинтересовало... Передавал строку, начинающуюся с /
Например, file=/../files/1.txt для функции file_exists ничем не отличается от file=1.txt
Но добился только того, что можно записать в БД кучу строк... Не очень интересно
Так как используется header а не инклуд, то прочитать ничего интересного не получится.
Вопрос - можно ли как-нить провести sql-инъекцию?