Вопрос по include

Discussion in 'Веб-уязвимости' started by form1234, 12 Jan 2020.

  1. form1234

    form1234 New Member

    Joined:
    12 Feb 2013
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Есть такой код:
    Code:
    $file = 'bla_' . $_GET['getvar']. '.php';
    if(!file_exists($file){ exit;}
    include    $file;
    Так же можно загрузить на сервер файл php имя менять не могу - только расширение. В папке где загрузка выполнение запрещено.
    Так вот есть подать на вход скрипта getvar=/../../../upldir/myfilename
    проверяю на локальной машине - проверку file_exists - не проходит. видиом из за несуществующего каталога /bla_
    при этом есть эту строчку с проверкой удалить то include срабатывает. - проверку никак обойти не получится?
     
  2. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    534
    Likes Received:
    986
    Reputations:
    333
    Не обходится.
     
    form1234 likes this.
  3. form1234

    form1234 New Member

    Joined:
    12 Feb 2013
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Есть еще вот такой:
    PHP:
    $file $_GET['getvar1']. 'n1_' .$_GET['getvar2'] . '.n2.php';
    if(!
    file_exists($file)){exit;}
    include(
    $file);
    Удаленный include не проверял - но скорее всего запрещено.
    Поидее тут null byte можно пробовать? или переполенние макс. количества символов в $file.
    Версия php не известна но скорее всего она < 6
    Других вариантов вродебы нет да?
     
  4. Baskin-Robbins

    Baskin-Robbins Well-Known Member

    Joined:
    15 Sep 2018
    Messages:
    170
    Likes Received:
    482
    Reputations:
    39
    crlf and form1234 like this.
  5. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    534
    Likes Received:
    986
    Reputations:
    333
Loading...