Техника поиска и эксплуатации LFI уязвимостей

Discussion in 'Песочница' started by SS_47, 5 Nov 2015.

  1. SS_47

    SS_47 Member

    Joined:
    5 Apr 2012
    Messages:
    18
    Likes Received:
    5
    Reputations:
    7
    Всем привет
    Имеется страничка
    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=fp_usluge
    название параметра запроса намекает на наличие на сайте LFI
    пробую следующее:
    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=./fp_usluge
    страница успешно грузится

    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=../fp_usluge
    страница не грузится

    что еще более намекает на наличие LFI
    проверяю, что будет с %00
    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=fp_usluge%00
    страница не грузится, из чего делаю предположение о том, что параметр с чем-то конкатенируется

    теперь пытаюсь заинклюдить /etc/passwd
    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=etc/passwd%00
    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=../etc/passwd%00
    Code:
    http://www.dirdim.com/port_featuredprojects.php?fileName=../../etc/passwd%00
    и так далее
    заинклюдить не удалось

    в связи с этим несколько вопросов:
    На сколько это похоже на LFI? Что такое может быть на сервере, из-за чего мне не удается подключить /etc/passwd? Как его можно раскрутить дальше?

    Какие файлы вы пробуете инклюдить на windows серверах? Что потенциально опасного можно сделать с LFI, в том случае, если на сайте нет возможности залить шелл?

    Заранее спасибо за ответы
     
  2. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    LFI, смотрим
    fileName=../lm_links
    fileName=../port_featuredprojects

    null-byte не будет работать, т.к. версия пропатчена
    X-Powered-By: PHP/5.3.29-pl0-gentoo

    ==

    есть phpinfo
    fileName=../phpinfo
    можно пробовать тему LFI + phpinfo
    https://rdot.org/forum/showthread.php?t=1134
    ==
    UPD
    LFI + phpinfo() порекомендовал зря, тема хорошая, но не тот случай, конечно.
     
    #2 nikp, 5 Nov 2015
    Last edited: 6 Nov 2015
    SS_47 likes this.
  3. SS_47

    SS_47 Member

    Joined:
    5 Apr 2012
    Messages:
    18
    Likes Received:
    5
    Reputations:
    7
    То есть такую уязвимость можно эксплуатировать, только если получится залить шелл с расширением .php?
    Можно подробнее, что значит версия пропатчена?
     
  4. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    null-byte использовать не получится. уязвимость исправлена
     
    _________________________
  5. {iddqd}

    {iddqd} Member

    Joined:
    22 Dec 2011
    Messages:
    170
    Likes Received:
    99
    Reputations:
    2
    Можно попробовать найти логи сервера по этой базе дефолтных путей:
    https://forum.antichat.ru/threads/324564/

    Потом отправить специальный http пакет с помощью софта InetCrack или HttpREQ:
    http://forum.antichat.ru/threads/121239/

    В заголовках пакета разместить PHP-код, он запишется в лог-файл и можно подгрузить его через LFI
     
  6. SS_47

    SS_47 Member

    Joined:
    5 Apr 2012
    Messages:
    18
    Likes Received:
    5
    Reputations:
    7
    Я правильно, понял, что нулл-байт актуален для php < 5.3.4?

    Занимательная штука
    Я не большой знаток PHP, но думал, что phpinfo - функция, возвращающая html описание environment'а. Это нормально, что на тамошнем сервере лежит страница phpinfo.php, с чем-то вроде
    Code:
    <?
    phpinfo();
    ?>
    
    сделали для удобства разработки и забыли убрать?) Как часто встречается подобное? Как вы нашли его?

    описанным методом у меня получилось залить шелл в tmp, но мне не ясен момент можно ли заинклудить залитый файл.
    предположительно, там написано что-то вроде
    Code:
    include($_GET['file'] . ".php");
    
    в этом случае я буду пытаться заинклюдить /tmp/blabla.php вместо /tmp/blabla, где реально лежит шелл

    Интересный подход
    Но опять-таки непонятно, как мне найти логи, если дописывается расширение .php и нельзя использовать null byte