%00 -> %2500, при аплоаде

Discussion in 'Песочница' started by wolmer, 10 Nov 2009.

  1. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    если в имени файла (который расположен на жест. диске) вставить в прямом смысле %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)
     
    2 people like this.
  2. smc

    smc New Member

    Joined:
    9 Oct 2009
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    wolmer. именно то, что меня и интересовало. спсб за разъяснения. освоил tamper data - все работает