Перейти к содержанию

CNoise

Актив
  • Постов

    132
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Активность репутации

  1. Лайк
    CNoise получил реакцию от jastan в Uniform 3.4.x   
    Jastan, достаточно просто - в css - там, где вы нашли значение ширины по умолчанию, заменить его с 980px, например, на 90%.
    А дабы избежать неприятных казусов на очень больших или очень маленьких мониторах, добавить чуть ниже еще два - min-width, равное, к примеру, 980px, и max-width, равное 1200px. Здесь min-width обозначает минимальную ширину, которую может принять ваш шаблон, а max-width - соответственно максимальную. Все значения, начиная с ширины - width, равной в моем примере 90 процентам, и заканчивая максимальной и минимальной шириной, можете выбирать самостоятельно. Здесь уже, как говорится, дело вкуса. Нужно экспериментировать и искать наиболее оптимальный вариант, на время экспериментов не забудьте отключить кэш.
     
    В результате должно получиться что-то вроде этого:
     
    margin: 0 auto; width: 90%; min-width: 980px; max-width: 1200px;  
    Значение margin здесь сообщает браузеру то, что отступы от границ с левого и правого края должны быть рассчитаны автоматически. Отступы сверху и снизу у данного конкретного элемента отсутствуют.
     
    Respected, привет, давно к вам сюда не заглядывал. Прости, твой ответ заметил только после публикации.
  2. Лайк
    CNoise отреагировална пост Respected в Quiz System 1.1.0 Rus   
    Название: Quiz System 1.1.0 Rus
    Добавил: Respected
    Добавлен: 12 Ноя 2012
    Категория: Компоненты, Приложения для IP.Board
    Название по-русски : Викторины для IP.Board
    Версия IP.Board: 3.3.x

    Quiz System 1.1.0 Rus - русская версия компонента викторин для IP.Board. C его помощью вы можете создавать категории и викторины в них для развлечения пользователей вашего форума.

    Русификация: Respected
    Оригинальная английская версия:


  3. Лайк
    CNoise получил реакцию от Z7ian в Знаки зодиака пользователей под аватаром (Rus)   
    Название: Знаки зодиака пользователей под аватаром (Rus)
    Добавил: CNoise
    Добавлен: 08 May 2012
    Категория: Русские хуки и моды IP.Board 3.2.x

    Небольшая модификация, которая позволит чуть сильнее разнообразить страницы тем вашего форума, добавив под аватарку каждого пользователя название его знака зодиака. Теперь полностью на русском языке!


  4. Лайк
    CNoise отреагировална пост Respected в Applications System 2.2.4   
    Название: Applications System 2.2.4
    Добавил: Respected
    Добавлен: 15 Авг 2012
    Категория: Компоненты, Приложения для IP.Board
    Название по-русски : Система групп Версия IP.Board: 3.4.x, 3.3.x


    Applications System 2.2.4 - ни что иное как новая версия компонента


  5. Лайк
    CNoise отреагировална пост Respected в Gravity Green 3.3.x   
    Название: Gravity Green 3.3.x
    Добавил: Respected
    Добавлен: 14 Apr 2012
    Категория: Стили IP.Board 3.3.x

    Gravity Green 3.3.x выполнен в стиле "web 2.0" с боковой левой панелью.


  6. Лайк
    CNoise отреагировална пост AUYKGN в Как изменить цвет группы !   
    mitek534, если хочешь чтобы было ещё красивей, то так же заходи в управление группами, и записывай так:Префикс имени пользователя:
    <span style="color: red; text-shadow: 0px 0px 10px red; font-weight: bolder;">Суффикс имени пользователя:</span>Вместо "red" пиши любой какой тебе нужно цвет И обрати внимание что их два, один цвет, другой цвет тени. 
    Такой будет эффект :)
  7. Лайк
    CNoise отреагировална пост € artem2206 в Как изменить цвет группы !   
    в админке находиш вкладку пользователи -Группы- Управление группами и меняеш цвет на тот который тебе надо, я обычно цвет беру с Викепидии
    выделенно красным:

  8. Лайк
    CNoise отреагировална пост Respected в Duplicate Members Logger v3.0.4   
    Название: Duplicate Members Logger v3.0.4
    Добавил: Respected
    Добавлен: 02 Ноя 2012
    Категория: Компоненты, Приложения для IP.Board
    Название по-русски : Дублированный вход пользователей Версия IP.Board: 3.3.x, 3.2.x


    Duplicate Members Logger v3.0.4 - компонент для IP.Board, позволяющий определять пользователей, которые заходят на ваш форум с одного компьютера, то есть выявлять такое явление, как мультиаккаунтовость.


  9. Лайк
    CNoise отреагировална пост Respected в Rio Skin ( + Flash Menu )   
    Название: Rio Skin ( + Flash Menu )
    Добавил: Respected
    Добавлен: 06 Янв 2013
    Категория: Стили, Темы, Шаблоны для IP.Board
    Версия IP.Board: 3.4.x, 3.3.x

    Rio Skin ( + Flash Menu ) - фиксированный стиль для IP.Board с флеш меню.


  10. Лайк
    CNoise получил реакцию от motomac в Расширенные оповещения 1.0.4   
    Название: Расширенные оповещения 1.0.4
    Добавил: CNoise
    Добавлен: 06 Июн 2012
    Категория: Русские хуки и моды IP.Board 3.3.x
    Автор локализации: CNoise
    Оригинальное название: Mod Notifications 1.0.4

    Данный хук позволит вашим пользователям видеть все действия, которые производились модераторами форума над их публикациями, неважно, что это - удаление, редактирование и скрытие сообщений и тем. Впрочем, все уведомления можно настроить. В любой момент вы также можете оградить пользователя от использования запрещенного на ваш взгляд оповещения.

    Уведомления отправляются при:
    Открытии / Закрытии тем;
    Одобрении сообщений и тем форума;
    Удалении сообщений или тем;
    Перемещении тем.

    Теперь полностью на русском языке.


  11. Лайк
    CNoise отреагировална пост Pashok(one) в Cтиль Motion [скоро]   
    Жду вашего мнения что изменить/подправить цвет/убрать вообще.

  12. Лайк
    CNoise отреагировална пост Respected в Cтиль Motion [скоро]   
    Самая важная составляющая дизайна - сочетание цветов. На форуме его очень сложно передать, если сравнивать с шаблонами сайтов...
    Очень хорошо это удаётся ipbforumskins, по этому у него бешеные продажи его стилей :)
  13. Лайк
    CNoise отреагировална пост podvorie в Cтиль Motion [скоро]   
    У тебя весь стиль в оттенках серого, внимание вопрос: -Откуда фиолетовый? Глаз режет. Ищи подходящий оттенок.
  14. Лайк
    CNoise отреагировална пост Respected в (SOS34) VIP Members 2.4.0   
    Название: (SOS34) VIP Members 2.4.0
    Добавил: Respected
    Добавлен: 19 Ноя 2012
    Категория: Компоненты, Приложения для IP.Board
    Название по-русски : Вип пользователи Версия IP.Board: 3.4.x, 3.3.x


    (SOS34) VIP Members 2.4.0 - компонент для управления Вип пользователями на форуме. Вы можете продвигать пользователей в VIP группу и указывать количество дней, которые пользователь будет состоять в этой группе. По истечению установленного срока пользователь автоматически переместится в предыдущую группу.

    На каждое действие (продвижение в группу, понижение группы и изменение срока пребывания в группе) пользователь будет получать автоматическое уведомление.


  15. Лайк
    CNoise отреагировална пост _Dark_ в Хочется странного (отделить раздел на поддомен)   
    Вообще-то, так и есть.
    Когда его разрабатывали Web 2.0 не было и в планах, там мало того, что интерфейс не соответветствует современным предоставлениям, так еще и сам механизм авторизации ужасный.
    Поэтому IPS не просто улучшает этот компонент, а пишет с нуля новый.
    Выводы сами делайте.
  16. Лайк
    CNoise отреагировална пост _Dark_ в Хочется странного (отделить раздел на поддомен)   
    Для связи форумов есть компонент IP.Converge, который позволяет использовать общую авторизацию на форумах и прочее, но он устарел.
    В ближайшем будущем будет выпущен новый компонент IP.Connect, представляющий переосмысленную версию IP.Converge.
  17. Лайк
    CNoise отреагировална пост Respected в Akismet. Что такое и с чем едят   
    Это тема поддержки статьи: Akismet. Что такое и с чем едят.
    Здесь вы можете обсудить все вопросы, связанные с этой статьёй.
     
    Дата добавления статьи: 16 Ноябрь 2012 - 02:08
    Дата обновления статьи: 16 Ноябрь 2012 - 02:08
  18. Лайк
    CNoise отреагировална пост pharaon в Создание тем по несколько минут   
    Настройки >
    System >
    Глобальные настройки Прочие настройки
    Режим отладки

    3й уровень



    снизу страниц появятся выполненные sql запросы.

    вот и пробуй их по-очереди выполнять на мускуле, смотри время выполнения
  19. Лайк
    CNoise отреагировална пост _Dark_ в Загрузка файлов на свой сервер   
    Закачать их нельзя. И неважно, где они, в картинке или в MP3 файле.
    Я повторюсь: если бы все было бы так просто, то любой сайт можно было взломать за минуту.
  20. Лайк
    CNoise получил реакцию от Z7ian в BIM | Панель статистики   
    Название: BIM | Панель статистики
    Добавил: CNoise
    Добавлен: 08 May 2012
    Категория: Русские хуки и моды IP.Board 3.2.x

    Небольшой хук, который, уверен, оживит любой форум. Данная модификация выводит блок статистики, состоящий из трех колонок, в верхнюю часть главной страницы вашего форума. Теперь полностью на русском языке!

    Колонки информации содержат:
    Список наиболее активных пользователей (Топ 5 пользователей, написавших большее количество сообщений на форуме);
    Последние сообщения (15 последних сообщений, написанных в темах вашего форума, в учет берутся и созданные пользователями темы);
    Последние темы (5 последних созданных пользователями тем в выбранных вами форумах)

    Также вместо последней колонки можно установить свое собственное сообщение. Что в нем написать, решать только вам



    * * *



    Добавлена версия с исправленным отображением Граватаров пользователей! За ее написание спасибо верному другу ZregerZ.



    Специально для IPBMafia.Ru и For-IPB.Ru.



    * * *



  21. Лайк
    CNoise отреагировална пост RSS Bot в IP.Board 3.3.x, 3.2.x, and 3.1.x Critical Security Update (6 November 2012)   
    Оригинальная новость

    Вчера IPS выпустила новый патч безопасности с пометкой Критический для IP.Board 3.1, 3.2, 3.3.
    Патч обязателен для установки.

    Установка
    Скачать архив для вашей версии IP.Board.
      Распаковать содержимое в корень форума. Изменения

    Если у вас лицензионная версия IP.Board вам необходимо скачать патч с официального сайта (ссылка дана выше).
    Я (_Dark_) внес следующие изменения в файл core.php:
    Проверка лицензии вырезана.
      Специально для пользователей IP.Board 3.3.x присутствует код для корректной работы авторизации через Vk. Внимание пользователям IP.Board 3.3.4:
    Если у вас стоит транслитерация URL (т.е. вы выполняли инструкции описанные в этой статье) или вы хотите ее сделать (даже если раньше у вас ее не было), вам необходимо сделать следующее:




    Внимание пользователям которым нужна авторизация через Vkontakte
    Откройте файл /admin/sources/base/core.php, найдите:



    Замените
     
     
    switch( $method ) { case 'facebook': return self::fbc_enabled(); break; case 'twitter': return self::twitter_enabled(); break; default: return in_array( $method, self:_lims ) ? true : false; break; } на
     
     
    switch( $method ) { case 'vkontakte': return self::vkontakte_enabled(); break; case 'facebook': return self::fbc_enabled(); break; case 'twitter': return self::twitter_enabled(); break; default: return in_array( $method, self:_lims ) ? true : false; break; }  

    И сохраните файл.


    Замечания
     
     
    Это обновление безопасности включает в себя предыдущее обновление. Сообщение в Админ-Центре будет отображаться минимум 7 дней, вне зависимости от того, установили вы патч или нет. Скачать

    IP.Board 3.3.x IPBMafia.Ru IP.Board 3.3 Security Update.zip

    IP.Board 3.2.x IPBMafia.Ru IP.Board 3.2 Security Update.zip

    IP.Board 3.1.x скачать с официального сайта (мы не поддерживаем IP.Board < 3.2)
  22. Лайк
    CNoise отреагировална пост _Dark_ в Предупреждение владельцам форумов, которые не устанавливали патч безопасности   
    Публикую эту тему здесь, т.к. она действительно важная.

    В публичном доступе был найден эксплоит для IP.Board начиная от версий 3.1 и заканчивая 3.3.4 включительно, который может быть использован для внедрения стороннего PHP кода в ваш форум.

    Патч от IPS был выпущен после публикации этого эксплоита, поэтому сейчас огромное количество форумов подвержено взлому.
    мной случай взлома сайта является ничем иным как результат использования этой уязвимости.

    Всем владельцам форумов на IP.Board необходимо установить ,?do=embed' frameborder='0' data-embedContent> в противном случае вам форум может быть подвергнут взлому.

    Внимание!
    Проверьте директорию /cache/ которая находится в корне вашего форума. Если в ней находится файл sh.php (это стандартное имя файла, который создается в результате использования эксплоита) — ваш сайт подвергся взлому.
    Вам необходимо срочно поменять пароль для подключения к базе данных, а так же запросить у хостера список PHP файлов которые были изменены за последние 7 дней.
    Необязательно появление новых файлов, могут быть отредактированы системные файлы IP.Board.
    После этого вы можете обратиться ко мне, отправив список измененных файлов и свои контактные данные, для получения помощи с восстановлением форума.
    Обязательно установите (в него входит и предыдущий патч) для обеспечения должной защиты вашего форума.
  23. Лайк
    CNoise отреагировална пост _Dark_ в Как я взлом сайта расследовал.   
    Если вы зашли сюда — будьте готовы к огромному количеству букв, различных терминов, непонятного кода и т.п.

    Началось все с темы.


    Fatal error: Cannot redeclare ololololololo1() (previously declared in /home/o/ХХХ/pro-ucheba.com/public_html/uploads/profile/av-128.jpg(33) : regexp code(1) : eval()'d code:2) in /home/o/ХХХ/pro-ucheba.com/public_html/uploads/profile/photo-128.jpg(33) : regexp code(1) : eval()'d code on line 3
    Как мы видим, ошибка незаурядная. Само наличие "ololololololo1" уже говорит о многом, а учитывая то, что все это происходит в файле av-128.jpg — вообще интересно. В общем то, только по вот этим признакам уже можно говорить о том, что сайт подвергся взлому. Первым делом были взяты эти два файла и пока отложены на просторы рабочего стола. Т.к. обсуждать все это на форуме было неудобно — списались с в ICQ. Для начала хотелось выяснить, кто это сделал. Файл uploads/profile/av-128.jpg является аватаркой пользователя с ID 128 (пока не будем говорить о том, как вообще в аватарке оказался PHP код), казалось бы нарушитель найден, но проблема в том, что владелец сайта чистил БД от старых записей и аккаунт пользователя удален. Ладно, к черту тогда личность взломщика, давайте разбираться, что произошло. Первое что приходит в голову — запросить у хостера список измененных .php файлов за последнюю неделю. Запрашиваем. Хостер предоставить их не может, но зато он нам любезно включает SSH доступ (это действительно хорошая черта тех.поддержки хостинга — они поняли в чем дело и без лишних разговоров предоставляют нам то, что в наш тарифный план не входит). Отлично, SSH у нас есть. При помощи простой команды find /public_html/ -type f -iname "*.php" -mtime -7[/code] (полный путь к директории вырезан за ненадобностью) получаем: [spoiler] [code]
    public_html/cache/cache_clean.php
    public_html/cache/globalCaches.php
    public_html/cache/furlCache.php
    public_html/cache/skin_cache/cacheid_1/skin_register.php
    public_html/cache/skin_cache/cacheid_1/skin_profile.php
    public_html/cache/skin_cache/cacheid_1/skin_online.php
    public_html/cache/skin_cache/cacheid_1/skin_nexus_support.php
    public_html/cache/skin_cache/cacheid_1/skin_editors.php
    public_html/cache/skin_cache/cacheid_1/skin_shoutbox.php
    public_html/cache/skin_cache/cacheid_1/skin_stats.php
    public_html/cache/skin_cache/cacheid_1/skin_upload.php
    public_html/cache/skin_cache/cacheid_1/skin_emails.php
    public_html/cache/skin_cache/cacheid_1/skin_promenu.php
    public_html/cache/skin_cache/cacheid_1/skin_ipseo.php
    public_html/cache/skin_cache/cacheid_1/skin_login.php
    public_html/cache/skin_cache/cacheid_1/skin_mod.php
    public_html/cache/skin_cache/cacheid_1/skin_search.php
    public_html/cache/skin_cache/cacheid_1/skin_shoutbox_hooks.php
    public_html/cache/skin_cache/cacheid_1/skin_boards.php
    public_html/cache/skin_cache/cacheid_1/skin_gms.php
    public_html/cache/skin_cache/cacheid_1/skin_messaging.php
    public_html/cache/skin_cache/cacheid_1/skin_legends.php
    public_html/cache/skin_cache/cacheid_1/skin_cp.php
    public_html/cache/skin_cache/cacheid_1/skin_post.php
    public_html/cache/skin_cache/cacheid_1/skin_mlist.php
    public_html/cache/skin_cache/cacheid_1/skin_modcp.php
    public_html/cache/skin_cache/cacheid_1/skin_global_other.php
    public_html/cache/skin_cache/cacheid_1/skin_reports.php
    public_html/cache/skin_cache/cacheid_1/skin_global.php
    public_html/cache/skin_cache/cacheid_1/skin_nexus_clients.php
    public_html/cache/skin_cache/cacheid_1/skin_topic.php
    public_html/cache/skin_cache/cacheid_1/skin_help.php
    public_html/cache/skin_cache/cacheid_1/skin_nexus_emails.php
    public_html/cache/skin_cache/cacheid_1/skin_ucp.php
    public_html/cache/skin_cache/cacheid_1/skin_global_comments.php
    public_html/cache/skin_cache/cacheid_1/skin_nexus_payments.php
    public_html/cache/skin_cache/cacheid_1/skin_forum.php
    public_html/cache/cache.php
    public_html/cache/aq.php
    public_html/cache/sd2178.php
    public_html/hooks/ipSeoPingTopics_9be3a8f6d34784b16a253af2060440da.php
    public_html/hooks/ipSeoAcronymsEditor_f29ecb558858bb04bf957fb505093329.php
    public_html/hooks/ipSeoMeta_1dfa8b1e2915158bcd0bc2ca20a90f4f.php
    public_html/hooks/dp3_fi_boardsClassActionOverloader_5fee7a7dd42c37cd850eba64e519789d.php
    public_html/hooks/cstopspamreg_cea6e736e42ab14fa64581f28c8c08d1.php
    public_html/hooks/passwordStrength_skin_7b219a756db0cc9bcbf78cb9b17ad92f.php
    public_html/hooks/ipSeoGuestSkin_ceb6061092c92fc4b36e682aabaa5c96.php
    public_html/hooks/globalProMenuRemovalTool_f73b5f48f7515d65c93216498d309aac.php
    public_html/hooks/cstopspamreg_bstats_99fac0fad97daf26fb18c4e61a46ed90.php
    public_html/hooks/topicosrecentes_ucp_8eced785d6487592b493fc683e778f68.php
    public_html/hooks/dp3_fi_forumsClassActionOverloader_0317c8e4a356386124447e57d90a0188.php
    public_html/hooks/globalProMenuJava_1e4b91655304505004f3429052bc0561.php
    public_html/hooks/ipSeoAcronymsBbcodeParser_46716b0eace16d346a426516a5a550ca.php
    [/code] [/spoiler] В глаза бросается [code]
    public_html/cache/aq.php
    public_html/cache/sd2178.php
    (названия файлов изменены, т.к. пока незачем их публиковать всем).
    [/code] (файл [font=courier new,courier,monospace]public_html/cache/cache.php[/font] я заметил только когда писал это, с ним тоже разберемся). Первый файл оказывается скриптом, значение которого я так и не понял. Второй файл имеет интересное содержание. После небольшой пробежки по Google оказываемся здесь. Все понятно, бэкдор из паблика. Удалять эти файлы как-то банально, сделаем по другому — заставим эти файлы работать на нас. Я не буду приводить код, скажу только, что IP-адрес, а так же информация о системе каждого, кто откроет эти файлы будут сохранены. С этим разобрались. Но очевидно, что "центр" взлома находится не здесь, а вон в тех аватарках с PHP кодом. Нам нужно определить, что этот код делает, чтобы установить, для чего был осуществлен взлом. Для начала берем первый файл — [b]av-128.php[/b]. Открываем его. Смотрим. Это кошмар. Во-первых, сразу видно, что код обфусцирован. Во-вторых, начисто нет форматирования кода. Начинаем с малого, приведем код к читаемому виду, в плане переносов строк. Для этого воспользуемся вот этим прекрасным сервисом, который отформатирует код за нас. Прогоняем код. Получаем результат, смотрим. Красота. Код стал более читабелен, мы можем сразу провести небольшой анализ. В коде нет зарезервированных слов PHP (if, function, for, while, и т.д.). Значит код в том виде, в котором он сейчас использует только стандартные функции PHP, не определяя свои. Из первого пункта получаем, что код обфусцирован несколько раз (почему? Потому что свои функции у скрипта все таки есть, помните ошибку, с которой все начиналось?). Скорее всего деобфусцировать код автоматически не выйдет. Поискав в Google сервисы для деобфускации становится понятно, что все что там есть — ерунда. Ну что ж, будем делать все самостоятельно. [size=5][b]Этап 1.[/b][/size] Бегло взглянув на код и обнаружив множество текстовых строк, а затем одну, которая все их объединяет [code]
    $v3IWiBF = // и здесь все эти текстовые строки
    [/code] приходим к выводу, что на данной стадии в коде минимум логики. Нужно найти переход с этого уровня кода на более низкий. Смотрим где же используется эта переменная [font=courier new,courier,monospace]$v3IWiBF[/font] с огромным текстом внутри. В коде таких упоминаний одно, это [code]
    $lGp2BqP = $Mb8Ze($v3IWiBF, $hFl0_($Jj1U($TjMGm), $Jj1U($VtLjYNP)));
    [/code] Ладно, смотрим где встречается собственно [font=courier new,courier,monospace]$lGp2BqP[/font], а это — последняя строка, вот [code]$d1QZk($phl6yJ, $r6Q7D($lGp2BqP), $PJf4o9);[/code] Значит переход на более низкий уровень кода находится на последней строке, это означает, что код обфусцирован [i]последовательно[/i], т.е. весь код (а не его отдельные части) был обфусцирован несколько раз. Это упрощает работу, значит нам тоже разбирать код можно последовательно, не пытаясь найти места, с которых начать. [size=5][b]Этап 2.[/b][/size] Есть такие задачки для маленьких детей, где нарисованы какие-то непрерывные линии, их начала и концы указаны и нужно найти какая линия к чему приведет, причем начал больше чем концов. Легче всего это решить пойдя по этим линиям с конца, вот и мы поступим так же. У нас есть функция, которая ведет к переходу на более низкий уровень кода — эта та самая последняя строчка [code]$d1QZk($phl6yJ, $r6Q7D($lGp2BqP), $PJf4o9);[/code] Будем работать над ней. Смотрим на образование названия самой функции: [code]
    $oWHh = "\160\162";
    $zYdUyk = 'eg';
    $XqVM = "\137\162";
    $PU0b = "\145\160";
    $I0Tf = "\154\141";
    $qGX8ht = "\143\145";
    $d1QZk = $oWHh . $zYdUyk . $XqVM . $PU0b . $I0Tf . $qGX8ht;[/code] Через секунд 10 раздумий в голову приходит, что 160, 162, 137 и т.д. — это ASCII коды и о них нам рассказывали где-то в школе. Ищем таблицу ASCII кодов, открываем, ищем число 160. Находим, это символ [b][size=4]á[/size][/b]. В PHP нет стандартных функций в названиях которых используются такие символы (а на данном уровне кода у скрипта тоже никаких своих функций нет, помните мы выше это выяснили). Значит 160 нам не подходит, но ведь в коде он используется. Вспоминаем синтаксис PHP, черт, ведь там код символа указывается в восьмеричной системе исчисления. Смотрим тогда колонку [i]Oct[/i] (Octal — восьмеричная система исчисления). Находим, это латинская буква [b]p[/b]. Подходит! Смотрим дальше. 162 — это буква [b]r[/b], получаем, что [code]$oWHh = "\160\162";
    $zYdUyk = 'eg';[/code] это ни что иное, как [b]preg[/b], т.е. это библиотека для работы с регулярными выражениями в PHP. Смотрим дальше, когда мы получаем[b] preg_r [/b]становится понятно, что вся функция имеет название [b]preg_replace[/b]. Промежуточный результат: [code]preg_replace($phl6yJ, $r6Q7D($lGp2BqP), $PJf4o9);[/code] Ну, совсем просто узнаем, что [font=courier new,courier,monospace]$phl6yJ[/font] это [code]/.*/e[/code] . Промежуточный результат: [code]preg_replace('/.*/e', $r6Q7D($lGp2BqP), $PJf4o9);[/code] Смотрим, что такое [font=courier new,courier,monospace]$r6Q7D[/font]. В коде это [code]
    $BiDR51n = "\142\141";
    $IhcdiCL = 'se';
    $Vq5GI = '64';
    $ID4o = "\137\144";
    $nBHq = 'ec';
    $ekeM_1 = "\157\144";
    $NViQXn = "\145";
    $r6Q7D = $BiDR51n . $IhcdiCL . $Vq5GI . $ID4o . $nBHq . $ekeM_1 . $NViQXn;
    [/code] Увидев [font=courier new,courier,monospace]..se64..ec...[/font] машинально вспоминаем [code]base64_decode[/code] Промежуточный результат: [code]preg_replace('/.*/e', base64_decode($lGp2BqP), $PJf4o9);[/code] [font=courier new,courier,monospace]$lGp2BqP[/font] — это результат работы какой-то функции, которая обрабатывает результат другой функции, пропустим пока. Остается [font=courier new,courier,monospace]$PJf4o9[/font]. Находим [code]
    $uRk52 = "";
    $PJf4o9 = $uRk52;
    [/code] в самом начале файла. Пустая строка. Отлично. Промежуточный результат: [code]preg_replace('/.*/e', base64_decode($lGp2BqP), '');[/code] Теперь будем разбираться с [font=courier new,courier,monospace]$lGp2BqP[/font]. Путем рассуждений которые мы делали выше узнаем, что [font=courier new,courier,monospace]$lGp2BqP [/font]— это [code]$lGp2BqP = strtr($v3IWiBF, array_combine(str_split($TjMGm), str_split($VtLjYNP)));[/code] Подставляем переменные и получаем [code]$lGp2BqP = strtr($v3IWiBF, array_combine(str_split('0=7ApLG%5HY#VS-$u_xsE 9,ZtD!crgq2b^/:6o3v1(&ln~k)\'B*IdQ[f4a`W\\'), str_split('8yaoY9jrcKuARDHlPC3S65nBwemEiN=Q1Vhf2stLZqJGUdIWbpM0zx4XvTFkgO')));[/code] А [font=courier new,courier,monospace]$v3IWiBF[/font] — это та огромная строка, про которую мы говорили в самом начале. Промежуточный результат: [code]preg_replace('/.*/e', base64_decode(strtr($v3IWiBF, array_combine(str_split('0=7ApLG%5HY#VS-$u_xsE 9,ZtD!crgq2b^/:6o3v1(&ln~k)\'B*IdQ[f4a`W\\'), str_split('8yaoY9jrcKuARDHlPC3S65nBwemEiN=Q1Vhf2stLZqJGUdIWbpM0zx4XvTFkgO')))), '');[/code] [code]'/.*/e'[/code] в регулярном выражении означает выполнение кода, указанного в строке. Значит нам нужно получить эту строку, это основной код скрипта. Выполняем [font=courier new,courier,monospace]base64_decode[/font] и получаем вот это. [b][size=5]Этап 3[/size][/b] Переходим на еще более низкий уровень кода, опять выполнив [font=courier new,courier,monospace]base64_decode[/font]. Результат. Вот мы и добрались до этой функции [font=courier new,courier,monospace]ololololololo1[/font]. Смотрим и видим это [code]\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'[/code] Это пошли уже HEX коды символов, расшифровав получаем [code]
    eval(gzinflate(base64_decode('/* зашифрованный код */')));
    [/code] Переходим еще на уровень ниже... [b][size=5]Этап 4[/size][/b] Вот он код, ребята! После небольшой паузы я начал смеяться, нет, правда Мы получили такой же код, как и в файле [code]public_html/cache/sd2178.php[/code] , отличие только в том, что он выполняется, если у пользователя установлена cookie с названием [b]zx[/b]. Получается, мы просто потратили время впустую? Нет. Во-первых, знаете, это вообще клёвое (я вообще никогда не ставлю букву Ё при набирании текста на клавиатуре, это исторический момент) чувство когда делаешь что-то вроде взлома. Ведь в самом деле, мы только что взломали защиту, которую кто-то делал. Во-вторых, лично я получил прекрасный опыт работы с [b]таким[/b] кодом. Можно считать эта была тренировка на умение ориентироваться и разбираться в защищенном коде. В-третьих, я могу сказать владельцу сайта (как писал я уже выше — это [member='Fensmas']), что ничего супер-страшного в этом коде не нашлось (нет, вообще этот скрипт может многое, вплоть до удаления всех файлов сайта, но мы сделали все вовремя). А вообще у нас есть еще один файл — [font=courier new,courier,monospace]uploads/profile/photo-128.jpg[/font], но разбирать его нет смысла. Вспомним ошибку: [CODE]
    Fatal error: Cannot redeclare ololololololo1() (previously declared in /home/o/ХХХ/pro-ucheba.com/public_html/uploads/profile/av-128.jpg(33) : regexp code(1) : eval()'d code:2) in /home/o/ХХХ/pro-ucheba.com/public_html/uploads/profile/photo-128.jpg(33) : regexp code(1) : eval()'d code on line 3
    [/code]
    Если кратко — код в этом файле является идентичным коду, который мы только что разбирали.

    [size=5][b]Итоги[/b][/size]

    Каждый сайт подвержен взлому, различия в том, что кто-то менее, кто-то более, зависит это от версий установленных скриптов.
    Я помню у нас тут были люди, которые не хотели обновляться "потому что нет ничего нового". Тем не менее обновляться надо всегда!
    Так же нельзя не забывать про патчи безопасности, которые тоже необходимо устанавливать.

    Учитывая то, что в общем-то код был один и тот же, можно предположить, что через один бэкдор были закачаны все остальные (а не было взлома еще и механизма кэширования IP.Board).

    В любом случае, я считаю, что это время я потратил не зря, хотя бы потому что это было интересно.
    Спасибо.


    Respected: так же можете почитать эту статью:

    [size=5][b]UPDATE 09.11.2012[/b][/size]
    Способ взлома сайта найден.
    Подробности опубликованы в теме.
  24. Лайк
    CNoise отреагировална пост _Dark_ в Ошибка Fatal error: Cannot redeclare   
    У вас какая версия форума?

    Здесь речь идет о возможной уязвимости IP.Board, нельзя это здесь публично обсуждать.
    Отправьте мне ваш номерок ICQ.
  25. Лайк
    CNoise получил реакцию от underwoker в Проблема после обновления до 3.3.3   
    Scandy, аналогичная проблема у меня была при установке форума версии 3.2.3, здесь, насколько я могу судить, ошибку допустили либо в IPS, либо в IBR, либо я даже не знаю где, решалась она установкой следующего фикса, , не уверен, что он сработает и на 3.3.3, думаю, стоит поискать актуальную версию этой инструкции, либо попробовать отталкиваться от сравнения того, что мы имеем в установленном шаблоне и того, что написано в теме на форуме.
×
×
  • Создать...