null-byte в php

Discussion in 'Уязвимости' started by cr0w, 14 Feb 2009.

  1. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    есть сайт на

    PHP Version 5.2.4
    register_globals=On
    allow_url_include=Off
    magic_quotes_gpc=Off

    и приблизительно с таким кодом
    ...
    if (!isset($a)) $a = '../';
    ...
    include_once($a . 'dir/file.php');
    ...
    Пытаюсь локальный инклуд провести, но не выходит:

    http://site.ru/123.php?$a=../ <= работает, страница нормально отображается

    http://site.ru/123.php?$a=../dir/file.php%00 <= нефига... =/

    Я так понял в новых версиях пхп нельзя использовать нулл-байт, чтоб отрезать лишний путь?

    А может кто-нибудь сказать с каких версяий пыха эту багу закрыли? или я неправ и дело еще в чем-то?
     
    #1 cr0w, 14 Feb 2009
    Last edited: 14 Feb 2009
  2. none222

    none222 Guest

    Reputations:
    0
    .................../>  フ.....................
         |  _  _|
         /`ミ _x 彡
         /      |
        /  ヽ   ノ
     / ̄|   | | |
     | ( ̄ヽ__ヽ_)_)
     \二つ
     
    #2 none222, 15 Feb 2009
    Last edited by a moderator: 6 Nov 2020
  3. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    В том-то и дело, когда программист пишет приложение на языке высокого уровня он не должен думать о таких вещах, как нулл-байт. Поэтому - это уязвимость. Правда, разработчики пхп так не считают.
    Ну то, что он работает во всех версиях пхп, я уже понял. Но все равно, вопрос для меня остается актуальным. Только теперь я его переформулирую так:

    Какие моды, настройки пхп или веб сервера могут повлиять на возможность внедрить null-byte?
     
  4. Iceangel_

    Iceangel_ Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    494
    Likes Received:
    532
    Reputations:
    158
    2cr0w

    magic_quotes_gpc=On (будет экранировать null-byte)
     
    2 people like this.
  5. oRb

    oRb Elder - Старейшина

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Вместо http://site.ru/123.php?$a=../dir/file.php%00
    пробуй http://site.ru/123.php?$a=../dir/file.php?
     
  6. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    код по подробней в ПМ можно?
     
  7. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    При таком коде и настройках , всё будет работать , думаю ты что-то пропустил именно в коде
     
  8. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Поэтому я и прошу подробней код)
     
  9. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    Ты неправ, есть модули которые фильтруют нулл-байт помимо настроек пхп - апачевый ModSecurity, например, или там suhosin какой-ниудь. Только на данном сервере ничего подобного я не обнаружил.

    В коде я ничего существенного не упустил, более того, на моем локальном веб-сервере эта бага в коде прекрасно эксплуатируется.
     
  10. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    Что-то я перестал улавливать нить дискуссии. Мне кажется , что лучше выложить код или линк и будет гораздо проще.

    Что касается ModSecurity, не могу сказать точно про нулл байт, но помоему по дефолту он не фильтруется.

    В любом случае, если нужен ответ на вопрос, то код и линк упростят дело
     
  11. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    Забудьте вы про код или линк. )

    Вопрос прост:
    Какие моды, настройки пхп или веб сервера (помимо тех, что в этой теме уже были озвучены) могут повлиять на возможность внедрить null-byte?
     
  12. none222

    none222 Guest

    Reputations:
    0
    .................../>  フ.....................
         |  _  _|
         /`ミ _x 彡
         /      |
        /  ヽ   ノ
     / ̄|   | | |
     | ( ̄ヽ__ヽ_)_)
     \二つ
     
    #12 none222, 16 Feb 2009
    Last edited by a moderator: 6 Nov 2020
    1 person likes this.
  13. cr0w

    cr0w Elder - Старейшина

    Joined:
    11 Sep 2008
    Messages:
    92
    Likes Received:
    141
    Reputations:
    33
    Ну это и так ясно, хотелось бы какой-то конкретики, может кто-то сталкивался. )

    В моем случае там точно "не на уровне скрипта". Система - фрибсд 6-й ветки. Файрволл там стандартный ipfw, рулесы посмотреть к сожалению не могу. Настройки пыха - практически такие же как у меня на локальном сервере (только ошибки не выводятся).

    Когда к странице с phpinfo() обращаешься на этом серевере с нулл-байтом в параметре, то в _REQUESTе этот нулл-байт отображается как пробел (а он должен, вроде как, вообще не виден быть).