
27.03.2010, 01:13
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами:
8947056
Репутация:
229
|
|
то вы nullbyte подставляете непосредственно в имя файла (то есть в его реальное имя на диске)
если в имени файла (который расположен на жест. диске) вставить в прямом смысле %00 то тогда при передаче файла, имя файла будет иметь %2500 (в хеддерах)
т.е. передаем
file_name.php%2500.jpg
Сервер обрабатывает строку (переводит HEX значения в символы)
После обработки получается что сервер сохр. файл на сервере под именем:
file_name.php%00.jpg
Поэтому берем какой нибуть сендер и вручную правим имя файла (т.е. чтобы было не %2500 (при отправке) а %00 (т.е. чтобы сам нулл байт, принимал сервер а не что либо другое))
получается примерно так:
передаем
file_name.php%00.jpg
Сервер обрабатывает строку...
После обработки получается что сервер сохр. файл на сервере под именем:
file_name.php
Т.е. сработал наш нулл байт (при условии что сервер будет принимать content-type: application/x-www-form-urlencoded)
|
|
|