• Удаляем «левые» ссылки в DLE

    find

    Просматривая свой сайт на движке DLE, заметил в подвале сторонние рекламные ссылки. Очевидно, что кто-то решил использовать мой сайт в качестве донора, наращивая себе ссылочную массу. Собственно, с большей вероятностью ссылки были изначально вшиты в дистрибутив nulled-версии DLE. К слову, это один из примеров, чем чревато использование нулевой версии. Тем не менее, ссылки нужно было удалить, поэтому опишу что было мною сделано для данной частной проблемы, а также оставлю некоторые рекомендации, которые могут помочь в выявлении и удалении "левых" ссылок с движка DLE.

    Как уже сказал, ссылки были в самом нижу сайта, причем только на страницах просмотра новостей (shortstory) категорий с id=1 и id=2. При просмотре кода страницы блок с рекламой имел примерно следующий вид:

    <div style="font-size: 10px;">Рекламный текст <a href="site.com">анкор ссылки</a></div>

     

    Первым делом полез просматривать разные tpl-шаблоны, что, естественно, ничего не дало.

    Далее скачал и установил утилиту Find-Link, которая ищет исходящие ссылки сайта, включая скрытые, и показывает файлы, в которые они записаны. Примером скрытой ссылки может быть следующий код:

    $protocol = "https://";
    $domain = "test.com";
    $link = $protocol.$domain;
    echo "link";
    

    Довольно полезная и удобная в использовании утилита: достаточно скопировать файл скрипта в корень сайта и запустить в браузере: http://yoursite.ru/find-link.php

    Ниже пример выполнения скрипта:

    find-link

    Но вариант с использованием Find-Link также не помог, так как, нежелаемые ссылки были искусно зашифрованы. Вернувшись к единственной зацепке,а именно к коду div-блока с ссылкой, решил сделать поиск по сайту по фразе "font-size: 10px;". Для поиска использовал Total Commander, предварительно сделав резервную копию сайта на компьютер. Благо, файлов с исходной фразой было немного и в engine/classes/template.class.php удалось найти подозрительный код:

    if (@strstr($this->copy_template, '</body>') && @strstr($this->copy_template, '</html>')) {
                 include_once($_SERVER['DOCUMENT_ROOT'].'/engine/classes/highslide/header.gif');
    			
    			if(@$sys_lctr) {
    				$this->copy_template = str_replace('</body>', '', $this->copy_template);
    				$this->copy_template = str_replace('</html>', '', $this->copy_template);
    				$this->copy_template .= "<div style=\"font-size: 10px;\">".@
    
    $sys_lctr."</div>\n</body>\n</html>";
    			}
    		}
    

    Если у вас аналогичная проблема, строки кода могут немного отличаться, но суть сводится к следующему. В файле header.gif лежит зашифрованный вредоносный код, который посылается в переменную $sys_lctr и содержит в себе искомые рекламные ссылки. Это будет видно, если файл header.gif открыть, например, в редакторе Notepad.

    Лечение: удаляем файл header.gif и вышеуказанные строки (в моем случае из template.class.php).

    Злополучный код, повторюсь, может отличаться и хранится в другом файле. Поэтому, если не найдете "опухоль" сразу, можете воспользоваться поиском по имени переменной sys_lctr и файлу header.gif.

    В Total Commander поиск осуществляется так: во вкладке Инструменты выбираем Поиск файлов, указываем папку с вашим сайтом, ставим галочку "С тексом" и задаем текст для поиска.

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

    Рубрики: Сайтостроение, Системы управления контентом

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