Есть ли способ обойти проверку расширения файла
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Есть ли способ обойти проверку расширения файла - 2011-04-15 11:41:46.143333
|
|
|
Simpliest
Сообщений: 4
Оценки: 0
Присоединился: 2011-04-15 11:33:30.213333
|
такая проверка <?php
/*....*/
$filename=$_FILES['file']['name'];
$ext=strtolower(array_pop(explode('.',$filename)));
if(in_array($ext,array("jpg","bmp","png","jpeg"))){
/*....*/
}
?> пробовал nullbyte аля myfile.php%00.jpg но есть одно но. почему-то файлы загружаются как $id.'_sometext'.$ext
|
|
|
RE: Есть ли способ обойти проверку расширения файла - 2011-06-16 23:56:15.416666
|
|
|
tеstеr
Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
|
Эту проверку не обойти. Во всяком случае с помощью nullbyte, что легко можно проверить: php -r '$ext = strtolower(chr(0)."jpg"); if( in_array($ext, array("jpg","png")) ) { echo "hack - ext:{$ext}\n";} else { echo "no hack - ext:{$ext}\n";}' no hack - ext:jpg php -r '$ext = strtolower("jpg".chr(0)); if( in_array($ext, array("jpg","png")) ) { echo "hack - ext:{$ext}\n";} else { echo "no hack - ext:{$ext}\n";}' no hack - ext:jpg php -r '$ext = chr(0); if( in_array($ext, array("jpg","png")) ) { echo "hack - ext:{$ext}\n";} else { echo "no hack - ext:{$ext}\n";}' no hack - ext: php -r '$ext = NULL; if( in_array($ext, array("jpg","png")) ) { echo "hack - ext:{$ext}\n";} else { echo "no hack - ext:{$ext}\n";}' no hack - ext: А раз проверку не обойти и перечень расширений фиксированный, на id и sometext не повлиять, то финт с длинным именем, которое обрезается (справедливо для Windows), также не прокатит.
|
|
|
|
|