Помощь Поиск и выявление "стучалок": Или о том как дудки вам дудки

Тема в разделе "Битрикс", создана пользователем mrLom, 6 ноя 2016.

Модераторы: mrLom, puagardian
  1. mrLom

    mrLom ♒︎

    Moderator
    Регистр.:
    24 дек 2014
    Сообщения:
    894
    Симпатии:
    1.677
    Итак, тема давно назревала, в итоге я решил таки вынести ее в отдельную ветвь.
    Правила простые: поменьше флуда, старайтесь писать по теме, что бы не мусорить в теме, просто лишний раз читайте внимательно где находятся подобные стучалки и не ленитесь пользоваться поиском по скриптам. Ищущий найдет.

    Студия Сотбит с решениями sotbit.missshop и sotbit.mistershop:
    sotbit.missshop/lang/ru/include.php
    PHP:
    $MESS['YANDEX']  = '<!-- Yandex.Metrika counter -->
    <script type="text/javascript">
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter22491013 = new Ya.Metrika({id:22491013,
                        webvisor:true,
                        clickmap:true,
                        trackLinks:true,
                        accurateTrackBounce:true});
            } catch(e) { }
        });
     
        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks");
    </script>
    <noscript><div><img src="//mc.yandex.ru/watch/22491013" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
    '
    ;
    $MESS['GOOGLE']  = "
    <script type='text/javascript'>
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-45850056-1']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
    "
    ;
    Решение: вычистить содержимое в кавычках, либо сразу же заменить реквизиты счетчиков на свои.

    Студия Аспро, замечено во всех решениях по аналогии:
    Все непотребства находятся в /bitrix/modules/ а далее в соответствии с решением aspro.(mshop, kshop, ishop, tires, optimus и т.д., во всех решениях студии)
    Учтите, путь тоже может меняться, поэтому пользоваться поиском никто не отменял!
    В старых версиях:
    /aspro.mshop/include.php
    В новых версиях:
    /aspro.mshop/classes/general/CMShop.php
    вытаскиваю отдельные части кода:
    PHP:
                    $socket fsockopen('bi.aspro.ru'80$errno$errstr10);
      
    $data json_encode(
      array(
      
    "client" => "aspro",
      
    "install_date" => date("Y-m-d H:i:s"),
      
    "solution_code" => self::moduleID,
      
    "ip" => $serverIP,
      
    "http_host" => $_SERVER["HTTP_HOST"],
      
    "bitrix_version" => SM_VERSION,
      
    "bitrix_edition" => $APPLICATION->ConvertCharset($editionSITE_CHARSET"utf-8"),
      
    "bitrix_key_hash" => md5(CUpdateClient::GetLicenseKey()),
      
    "site_name" => $APPLICATION->ConvertCharset(COption::GetOptionString("main""site_name"), SITE_CHARSET"utf-8"),
      
    "site_url" => $APPLICATION->ConvertCharset(COption::GetOptionString("main""server_name"), SITE_CHARSET"utf-8"),
      
    "email_default" => $APPLICATION->ConvertCharset(COption::GetOptionString("main""email_from"), SITE_CHARSET"utf-8"),
      
    "action" => $action,
      )
      );
      
    fwrite($socket"POST /rest/bitrix/installs HTTP/1.1\r\n");
      
    fwrite($socket"Host: bi.aspro.ru\r\n");
      
    fwrite($socket"Content-type: application/x-www-form-urlencoded\r\n");
      
    fwrite($socket"Content-length:".strlen($data)."\r\n");
      
    fwrite($socket"Accept:*/*\r\n");
      
    fwrite($socket"User-agent:Bitrix Installer\r\n");
      
    fwrite($socket"Connection:Close\r\n");
      
    fwrite($socket"\r\n");
      
    fwrite($socket"$data\r\n");
      
    fwrite($socket"\r\n");
      
    $answer '';
      while(!
    feof($socket)){
      
    $answer.= fgets($socket4096);
      }
      
    fclose($socket);

    /aspro.mshop/admin/mc.php
    Фрагмент кода открывает фрейм сайта студии, а это вам знаете ли рефка:
    PHP:
      <iframe src="https://aspro.ru/mc/?<?=$m?>"></iframe>
    Благовидно, но сдаст вашу копию с потрохами.

    Решение: Полностью удалить представленные части кода — формирование статистики в сокет и фрейм.
    Либо заменить bi.aspro.ru на localhost — тем самым отправим статистику в никуда.
     
    Последнее редактирование: 16 ноя 2016
    matisso, navistarsys, SaKura и 11 другим нравится это.
  2. wpt

    wpt

    Регистр.:
    11 фев 2013
    Сообщения:
    668
    Симпатии:
    95
    Если этого нет, значит старая версия шаблона?
     
  3. mrLom

    mrLom ♒︎

    Moderator
    Регистр.:
    24 дек 2014
    Сообщения:
    894
    Симпатии:
    1.677
    Да, верно, это появилось в одних из последних версий шаблона
     
    saymong нравится это.
  4. bardak

    bardak Постоялец

    Регистр.:
    30 июл 2012
    Сообщения:
    137
    Симпатии:
    211
    Разве такое не должно баниться битриксом? Хотя о чем это я, кучу решений не соблюдают даже элементарных правил публикации на маркетплейсе и ничего, пропускают. Странно как-то, зачем они вообще правила писали‽
     
  5. mrLom

    mrLom ♒︎

    Moderator
    Регистр.:
    24 дек 2014
    Сообщения:
    894
    Симпатии:
    1.677
    Думаю, это было опубликовано после модерации, пока такого в системе не было.

    Подобный сбор статистики нашел в studio7.gorportal
    /studio7.gorportal/include.php
    PHP:
    function newAction($action "unknown") {
      
    $socket fsockopen('cp.smart-d.ru'80$errno$errstr10);
      if(
    $socket){
      if(
    CModule::IncludeModule("main")){
      global 
    $APPLICATION;
      require_once(
    $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php");
      
    $errorMessage "";
      
    $serverIP $_SERVER["HTTP_X_REAL_IP"] ? $_SERVER["HTTP_X_REAL_IP"] : $_SERVER["SERVER_ADDR"];
      
    $arUpdateList CUpdateClient::GetUpdatesList($errorMessage"ru""Y");
      if(
    array_key_exists("CLIENT"$arUpdateList) && $arUpdateList["CLIENT"][0]["@"]["LICENSE"]){
      
    $edition $arUpdateList["CLIENT"][0]["@"]["LICENSE"];
      }
      else{
      
    $edition "UNKNOWN";
      }
      
    $data json_encode(array(
      
    "client" => "studio7",
      
    "install_date" => date("Y-m-d H:i:s"),
      
    "solution_code" => "studio7.gorportal",
      
    "ip" => $serverIP,
      
    "http_host" => $_SERVER["HTTP_HOST"],
      
    "bitrix_version" => SM_VERSION,
      
    "bitrix_edition" => $APPLICATION->ConvertCharset($editionSITE_CHARSET"utf-8"),
      
    "bitrix_key_hash" => md5(CUpdateClient::GetLicenseKey()),
      
    "site_name" => $APPLICATION->ConvertCharset(COption::GetOptionString("main""site_name"), SITE_CHARSET"utf-8"),
      
    "site_url" => $APPLICATION->ConvertCharset(COption::GetOptionString("main""server_name"), SITE_CHARSET"utf-8"),
      
    "email_default" => $APPLICATION->ConvertCharset(COption::GetOptionString("main""email_from"), SITE_CHARSET"utf-8"),
      
    "action" => $action)
      );
      
    fwrite($socket"POST /rest/bitrix/installs HTTP/1.1\r\n");
      
    fwrite($socket"Host: cp.smart-d.ru\r\n");
      
    fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
      
    fwrite($socket,"Content-length:".strlen($data)."\r\n");
      
    fwrite($socket,"Accept:*/*\r\n");
      
    fwrite($socket,"User-agent:Bitrix Installer\r\n");
      
    fwrite($socket,"Connection:Close\r\n");
      
    fwrite($socket,"\r\n");
      
    fwrite($socket,"$data\r\n");
      
    fwrite($socket,"\r\n");
      
    $answer '';
      while(!
    feof($socket)){$answer.= fgets($socket4096);}
      
    fclose($socket);
      }
      }

    В первых версиях такого точно не было
     
    latteo нравится это.
  6. Martyrka

    Martyrka Постоялец

    Регистр.:
    16 апр 2008
    Сообщения:
    129
    Симпатии:
    50
     
  7. mrLom

    mrLom ♒︎

    Moderator
    Регистр.:
    24 дек 2014
    Сообщения:
    894
    Симпатии:
    1.677
    Да, совершенно верно, я ошибся с файлом, конечно же default_option.php — в любом случае, суть от этого не меняется, это по умолчанию в языковых переменных.
    В нашем случае, вы засветите свой домен и его можно будет мониторить. Одно дело демка 14 дней, другое дело действующий магазин. Поэтому менять и удалять нужно до уставноки решения, а не после!
     
  8. zzz101

    zzz101 Постоялец

    Регистр.:
    19 дек 2013
    Сообщения:
    78
    Симпатии:
    5
    У меня Aspro_Optimus в include.php есть этот фрейм, а в include.php ничего похожего, как написано выше нет.

    Как быть, что делать? Сайт уже на хостинге, закрыт от индексации.
     
  9. mrLom

    mrLom ♒︎

    Moderator
    Регистр.:
    24 дек 2014
    Сообщения:
    894
    Симпатии:
    1.677
    1. Удалить фрейм. поиском найти bi.aspro.ru — заменить на localhost
    2. Только чистить.
     
    HAT, latteo, Avalanch и ещё 1-му нравится это.
  10. zzz101

    zzz101 Постоялец

    Регистр.:
    19 дек 2013
    Сообщения:
    78
    Симпатии:
    5
    В mc.php удалить весь этот фрагмент?
    </script>
    <?
    }
    else{
    $m = COptimusTools::___1595018847();
    ?>
    <iframe src="https://aspro.ru/mc/?<?=$m?>"></iframe>
    <script type="text/javascript">

    В include.php нет bi.aspro.ru

    После удаления, как я понимаю, я могу заново поставить сайт на хостинг, на тот же домен и жить спокойно?)
    За лайфхаки спасибо!