уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

В продолжение тем «Война с гоблинами…», рассмотрим сегодня новые функции, которые были добавлены в разрабатываемую мой программу по проверке шаблонов WordPress на «вшивость».

Как я уже упоминал, зачастую, ссылки на ГС выводятся на страницы наших с Вами сайтов при помощи php-функций, имена которых «зашифрованы» под вполне безобидные тэги шаблонов WordPress, например bloginfo и другие. Исходя из этого, проверка шаблона вручную может значительно осложняться, может возникнуть ситуация, когда в порыве праведного гнева, вы можете удалить нормальный тег и т.д.

Чтобы этого не произошло я немного расширил возможности поиска «вшей» в шаблонах и сделал подробный вывод информации о каждой найденной ошибке. Например, возьмем тему, содержащую файл functions.php в котором содержится вредоносная для нас функция.

Вид главного окна программы после проверки темы:

Как видите, теперь все файлы, в которых найдены ошибки, выделяются в списке красным цыетом. Выбираем файлс ошибками и получаем их список:

В файле functions.php как минимум содерится две нежелательные функции и закодированный участок текста.

Теперь делаем двойной клик по первой ошибке и получаем всю интересующую нас информацию:

Помимо того, что программа теперь определяет название функции и содержащиеся в этой функции ссылки на внешние ресурсы, теперь также ищутся строки, где встречается имя функции. В данном случае, необходимо «убить» вызов функции в файле index.php на двадцатой строке.

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

echo(base64_decode("PGEgaHJlZj0....

реже, так:

eval(gzinflate(base64_decode('DdBJkqJAAA....

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

Выбираем опять двойным кликом ошибку и получаем подробный вывод:

Тепер, если нам необходимо получить расшифрованную строку, жмем кнопку «Пробовать расшифровать» и получаем, то, что хотели:

Как видите, в закодированном участке шаблона, содержалась ссылка на ресурс, который никак не связан с созданием шаблона. Следовательно, такой участок кода следует удалить.

В настоящее время продолжаю разбираться с другими способами обмана блоггеров. Надо сказать, способов непочатый край. Также планирую добавить в программу проверки на вызов eval, т.к. это также может быть очень и очень пагубным для нас действием.

Если есть ещё какие-либо идеи, пожелания по поводу развития программы — пишите, не стесняйтесь. Пока не выложена версия для масштабного использования Вы ещё можете повлиять на развитие программа, а дальше скорее всего останется только работа над ошибками, если таковые найдуться.

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
1 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Максим
13/01/2010 01:13

Описание радует, остаётся опробовать данную фичу на практике.