Ошибка БД на форуме IPB. Конкурс хаков: простой способ устроить DoS в IPB Войска profile invision power board

Ошибка БД на форуме Invision Power Board (IPB), вследствии чего форум начал тормозить довольно прилично. Оказалась повреждена таблица ibf_profile_portal_views, и необходимо сделать проверку таблиц. На форуме это отображается следующим образом: нельзя войти в профиль пользователя:

Также на форуме не отображается статистика посещений:

Идем в Админцентр IPBoard смотрим свойства системы:

Идем в раздел: Поддержка > Диагностика > Состояние системы > Обзор системы > Проверка структуры базы данных.

Находим ошибку: ibf_profile_portal_views. Нажмите здесь для исправления таблицы или вы можете выполнить следующие запросы вручную.
- ALTER TABLE ibf_profile_portal_views ADD views_member_id int(10) NOT NULL default "0".


Внимание: Найдены ошибки. В базе данных обнаружены ошибки. И для их исправления нажимаем на ссылку: Хотите попытаться исправить все в автоматическом режиме?


И напротив таблицы ibf_profile_portal_views (профиль и количество просмотров) получаем зеленый флаг:


Но после выхода и входа в админку, ошибка появляется снова. Поэтому идем в Поддержка > Управление SQL > Инструменты > Инструменты для управления SQL.


И делаем клик на таблице ibf_profile_portal_views.

Читаем информацию. Результаты ручного запроса: Can"t find file: "ibf_profile_portal_views" (errno: 2). Далее, вбиваем в поле Выполнить:
CREATE TABLE ibf_profile_portal_views (
views_member_id int(10) NOT NULL default "0"
);
И нажимаем на кнопку: Выполнить новый запрос.


Ошибка сменилась на: Table "ibf_profile_portal_views" already exists. Т.е. не дает создать новую таблицу, так как она уже существует.


Пробуем следующий вариант: repair table ibf_profile_portal_views;

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


Функция этой таблицы следующая - там скапливаются просмотры профиля пользователя, потом, они считаются и обновляются в другой таблице, а данная таблица очищается.
Для работы с БД, также можно использовать либо Sypex Dumper, либо phpMyAdmin веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.

Invision Power Board (также применяются сокращения: IPB, IP.Board) представляет собой одно из популярнейших в мире решений для создания форумов. Данное программое обеспечение разрабатывается фирмой Invision Power Services, Inc.

Система создана с применением технологий HTML, PHP, JS, AJAX, в качестве сервера базы данных использует MySQL (дополнительно, имеется поддержка других серверов баз данных, таких как Microsoft SQL Server и Oracle). IPB является платным программным обеспечением.

Несмотря на то, что Invision Power Board является платным продуктом, существует большое количество сообществ, занимающиеся его поддержкой и модификацией. Большая часть модификаций и стилей оформления, разрабатываемые данными сообществами, бесплатны и свободны для скачивания. Крупнейшим русским сообществом является IBResource.ru.

Версия форумов IPB 1.3 является самой последней бесплатно распространяемой версией движка и до сих пор разрешена IPS для использования, хотя уже не поддерживается разработчиками и доступ к скачиванию на официальном ресурсе уже прекращен. Не обращая внимание на устарелость данной версии форума и наличия в ней известных дыр в безопасности, многие люди до сих пор пользуются ей и не выражают никакого желания обновляться. IPS продолжала выпускать обновления безопасности до объявления выхода в разработку версии 2.1 в 2005 году, после чего поддержку данной версии форума прекратила. На некоторых сайтах даже сейчас можно увидеть ссылки на выпускаемые ими обновления безопасности, равно как и обновления, позволяющие работать скрипту форума на PHP5. Эти обновления не поддерживаются IPS. Версия 1.3.1 была условно-бесплатной на период тестирования, который может длиться сколь угодно долго. После этой версии Invision Power Services стали выпускать свои продукты под коммерческой лицензией.

Преимущества

  • Установка всего за 3 минуты . Компоненты автоматической инсталляции дают возможность практически любому пользователю установить форум всего за несколько минут. Процесс не требует специальных знаний: система сама выполнит все операции, запросив у вас лишь необходимые данные. Да, к чему лишние разговоры, - IPB-лицензия даёт каждому владельцу право заказать бесплатную установку своего форума.
  • Техподдержка на русском языке. Обладателям лицензии IP.Board доступна техническая поддержка на русском языке. Причем специалисты службы не просто говорят на вашем родном языке, они также являются «родными» разработчиками форума. А значит, вам не прийдется объяснять им симптомы проблем, а также возможные пути разрешения. Идеальное владение предметом позволяет производить все работы с форумом, не тратя время и силы клиента.
  • Социальная направленность. Сделать форум полноценной средой для общения, дать пользователям дополнительные возможности для знакомства и установления связей - этому способствуют атрибуты социального взаимодействия участников форума. Пользователи IP.Board могут легко обмениваться различным контентом между собой, создавать персональные анкеты, заводить друзей, добавляя их в свой круг.
  • Удобный интерфейс Web 2.0. Хорошего никогда не бывает много. Для ещё большего удобства в системе IPB используются современные технологии Web 2.0. Благодаря чему, пользоваться необходимыми базовыми функциями форума легко и интуитивно просто. А раз просто, значит, участники избавлены от занудной технической «прелюдии» к общению.
  • Гибкость. IPB обладает широкими возможностями для персонализации вашего сообщества и настройки индивидуальных опций. Гибкость системы позволяет без больших трудозатрат осуществлять интеграцию форума со сторонними решениями, а также изменять любой элемент интерфейса (дизайн, добавление новых функций).
  • Лояльность к бренду. «Потребитель не дурак, он - твоя жена». Интересный форум, продуманная организация сообщества - всё это работает на имидж компании, повышает лояльность клиентов к марке. Пользователи обязательно оценят комфорт созданной среды для общения: возможность обсуждения марки с другими людьми, обмен мнениями, отклик и взаимодействие с руководством самой компании.
  • Снижение расходов. Сообщество форума выполняет роль онлайн-консультации 24 часа в сутки, ощутимо сокращая количество обращений в вашу службу техподдержки. Пользователю психологически намного проще и легче обратиться за помощью на форум: дружеское участие, мнение и советы независимых специалистов - в результате общения не только решаются все проблемы, но и снимаются негативные эмоции из-за возникших затруднений.
  • Маркетинговые исследования. Система IP.Board позволяет использовать форум как инструмент для маркетинговых исследований. Изучение оценок и мнений ваших клиентов, проведение опросов, тестирование - широкие технические возможности форума позволяют применять различные схемы исследований.
  • Многозадачность. Гибкость настройки системы позволяет использовать IP.Board для достижения различных целей. Помимо традиционного инструмента коммуникаций, некоторые компании организовали на базе форума систему управления проектами. IP.Board служит как внутренней, так и внешней системой работы с клиентами. За счёт возможности глубокой и индивидуальной настройки прав доступа можно адаптировать работу форума даже к самыми сложным и специфическим задачам.
  • Адекватность ценообразования. Условия приобретения программного продукта IP.Board и разработанный тарифный план позволяют найти оптимальный вариант для решения поставленных перед форумом задач. Вы платите за то, что вы действительно используете, что вам действительно необходимо.
  • Дополнительные модули. Вы можете расширять функционал системы IP.Board с помощью дополнительных официальных приложений (модуль галереи, блога, файлового архива). Готовые решения избавляют вас от самостоятельных разработок и доработок функционала. Дополнительные модули полностью совместимы с системой и используют единое пространство сообщества, что позволяет производить их установку в один клик, не требуя специальных знаний и навыков. Приложения также поддерживают выход новых версий, а их обслуживание входит в общий пакет услуг по техподдержке форума.
  • Продуманное управление форумом. Эффективности любого сообщества способствует грамотное «дирижирование». Встроенные в IP.Board инструменты управления позволяют создавать гибкую систему администрирования и модерирования с нужным разграничением прав. Управление форумом включает широкие возможности: от контроля за контентом до создания центра диагностики, который позволяет вести обслуживание форума, следить за статистикой и проверять систему на возможные ошибки.

Возможности

  • Простая, интуитивная и быстрая установка
  • Наличие драйверов для различных типов баз данных: MSSQL, Oracle, PostgreSQL
  • Полная готовность работы сразу после установки
  • Группы и Мульти-группы для пользователей
  • Современный профиль пользователя
  • Друзья


act . Так вот act action ", что означает "действие". (далее в тексте вместо act будет говориться action ) action act=Online или act=UserCP

act=idx
Сначала найдите такой код:
if (! isset($choice[ $ibforums->input["act"] ])) { $ibforums-> idx idx на portal ИЛИ на home


$choice = array("idx" => "Boards", "SC" => "Boards", "SF" => "Forums", "SR" => "Forums", "ST" => "Topics", "Login" => "Login", "Post" => "Post", "Poll" => "lib/add_poll", "Reg" => "Register", "Online" => "Online", "Members" => "Memberlist", "Help" => "Help", "Search" => "Search", "Mod" => "Moderate", "Print" => "misc/print_page", "Forward" => "misc/forward_page", "Mail" => "misc/contact_member", "Invite" => "misc/contact_member", "ICQ" => "misc/contact_member", "AOL" => "misc/contact_member", "YAHOO" => "misc/contact_member", "MSN" => "misc/contact_member", "report" => "misc/contact_member", "chat" => "misc/contact_member", "integ" => "misc/contact_member", "Msg" => "Messenger", "UserCP" => "Usercp", "Profile" => "Profile", "Track" => "misc/tracker", "Stats" => "misc/stats", "Attach" => "misc/attach", "ib3" => "misc/ib3", "legends" => "misc/legends", "modcp" => "mod_cp", "calendar" => "calendar", "buddy" => "browsebuddy", "boardrules" => "misc/contact_member", "mmod" => "misc/multi_moderate", "warn" => "misc/warn", "home" => "dynamiclite/csite", "module" => action "warn" => "misc/warn", , то это значит для act=warn
sources sources

lang и skin . Находим соответственно:
$ibforums->lang = $std->load_words($ibforums->lang, "lang_post" , $ibforums->lang_id); $ibforums->lang = $std->load_words($ibforums->lang, "lang_ucp" , $ibforums->lang_id); и
$this->html = $std-> lang_post.php и lang_ucp.php skin_ucp.php

А вот что с чем связано:

"idx" =>
"SC" =>
"SF" =>
"SR" =>
"ST" =>
"Login" =>
"Post" =>
"Poll" =>
"Reg" =>
"Online" =>
"Members" =>
"Help" =>
"Search" =>
"Mod" =>
"Print" =>
"Forward" =>
"Mail" =>
"Invite" =>
"ICQ" => Отсылка сообщения на ICQ
"AOL" => Отсылка сообщения на AOL
"YAHOO" => Отсылка сообщения на YAHOO
"MSN" => Отсылка сообщения на MSN
"report" =>
"chat" =>
"integ" =>
"Msg" =>
"UserCP" =>
"Profile" =>
"Track" => Подписка на тему/форум
"Stats" =>
"Attach" =>
"ib3" =>
"legends" => Смайлики, помощь по bbcode
"modcp" =>
"calendar" =>
"buddy" =>
"boardrules" =>
"mmod" =>
"warn" =>
"home" =>
"module" =>


act

У вас могут возникнуть вопрос, а что же такое: "idx" => "Boards", "SC" => "Boards", "SF" => "Forums", "SR" => "Forums", "ST" => "Topics",








if ($ibforums->input["showforum"] != "") { $ibforums->input["act"] = "SF"; $ibforums->input["f"] = intval($ibforums->input["showforum"]); } else if ($ibforums->input["showtopic"] != "") { $ibforums->input["act"] = "ST"; $ibforums->input["t"] = intval($ibforums->input["showtopic"]); // Grab and cache the topic now as we need the "f" attr for // the skins... $DB->query("SELECT t.*, f.topic_mm_id, f.name as forum_name, f.quick_reply, f.id as forum_id, f.read_perms, f.reply_perms, f.parent_id, f.use_html, f.start_perms, f.allow_poll, f.password, f.posts as forum_posts, f.topics as forum_topics, f.upload_perms, f.show_rules, f.rules_text, f.rules_title, c.name as cat_name, c.id as cat_id FROM ibf_topics t, ibf_forums f , ibf_categories c WHERE t.tid=".$ibforums->input["t"]." and f.id = t.forum_id and f.category=c.id"); $ibforums->topic_cache = $DB->fetch_row(); $ibforums->input["f"] = $ibforums->topic_cache["forum_id"]; } else if ($ibforums->input["showuser"] != "") { $ibforums->input["act"] = "Profile"; $ibforums->input["MID"] = intval($ibforums->input["showuser"]); }

Структура и пути в IPB

Форумы IBResource


В этой теме нет ответов

IBResource

  • Город: 99|rus

У многих наверняка возникал вопрос:
"Почему в IPB столько файлов? Ведь пути всегда идут к одному файлу index.php, а меняются лишь параметры."

Так вот эта краткая статья по файлам в IPB должна помочь вам лучше разбираться в IPB . Что где искать. Где что изменять.

Почти все страницы в IPB имеют в адресе параметр act . Так вот act - это сокращение от английского слова "action ", что означает "действие". (далее в тексте вместо act будет говориться action ) Так вот эта основная состовляющая деления по файлам. Почти каждому значению action соответствует свой файл с функциями + свой файл с шаблонами + свой языковой файл. Почему почти? Потому что бывают мелкие действия, естесственно на разных значениях action , но они объединяются все в один файл с функциями + также объединенный языковой файл + также объединенный файл с шаблонами. Например есть крупные act=Online или act=UserCP . У них у каждого свои служебные файлы с функциями и т.д.
Итак как понять какой action относиться к каким файлам?

Для этого заходим в index.php. Там все расписано. Сразу сообщю, что index.php?act=idx является адресом главной странице форума где представлены все категории и форумы.
Сначала найдите такой код:
if (! isset($choice[ $ibforums->input["act"] ])) { $ibforums->input["act"] = "idx"; } Это запись означает, что если параметр action не указан, то он по умолчанию равен idx . Так вот почему при запуске форума просто по адресу открывается главная страница форума со списком форумов . Изменив здесь значение idx на portal (для форума где стоит IBF Portal 3.2 или 4.0) ИЛИ на home (если у вас 1.2 и стоит портал IPDynamic Lite), то вы получите, что у вас по умолчанию будет загружаться не форум а портал.

А теперь поднимитесь чуть выше и найдите примерно такой код:
$choice = array("idx" => "Boards", "SC" => "Boards", "SF" => "Forums", "SR" => "Forums", "ST" => "Topics", "Login" => "Login", "Post" => "Post", "Poll" => "lib/add_poll", "Reg" => "Register", "Online" => "Online", "Members" => "Memberlist", "Help" => "Help", "Search" => "Search", "Mod" => "Moderate", "Print" => "misc/print_page", "Forward" => "misc/forward_page", "Mail" => "misc/contact_member", "Invite" => "misc/contact_member", "ICQ" => "misc/contact_member", "AOL" => "misc/contact_member", "YAHOO" => "misc/contact_member", "MSN" => "misc/contact_member", "report" => "misc/contact_member", "chat" => "misc/contact_member", "integ" => "misc/contact_member", "Msg" => "Messenger", "UserCP" => "Usercp", "Profile" => "Profile", "Track" => "misc/tracker", "Stats" => "misc/stats", "Attach" => "misc/attach", "ib3" => "misc/ib3", "legends" => "misc/legends", "modcp" => "mod_cp", "calendar" => "calendar", "buddy" => "browsebuddy", "boardrules" => "misc/contact_member", "mmod" => "misc/multi_moderate", "warn" => "misc/warn", "home" => "dynamiclite/csite", "module" => "modules",); А вот и список всех значений action (слева) и список имен файлов (без расширения php) к чему они относятся (справа). Если строка такая - "warn" => "misc/warn", , то это значит для act=warn служебный файл расположен по адресу
Почему в строке не указана директория sources , а я ее указал? Потому что все служебные файлы (почти ) находятся в папке sources (в переводе с английского - исходники).
Как узнать, где находятся языковые файлы и шаблоны данного файла?
Просто. Заходим в файл, например выбрали UserCP.php. Там ищем слова lang и skin . Находим соответственно:
$ibforums->lang = $std->load_words($ibforums->lang, "lang_post" , $ibforums->lang_id); $ibforums->lang = $std->load_words($ibforums->lang, "lang_ucp" , $ibforums->lang_id); и
$this->html = $std->load_template("skin_ucp"); Из чего не сложно понять, что языковые файлы используются 2 штуки lang_post.php и lang_ucp.php . А файл с шаблонами используется только один skin_ucp.php

А вот что с чем связано:

"idx" => index - Главная страница форума
"SC" => Show Category - Отображает список форумов выбранной категории
"SF" => Show Forum - Показывает список тем выбранного форума!
"SR" => Show Rules - Показывает правила выбранного форума (их можно создавать для каждого форума свои)
"ST" => Show Topic - Показывает выбранную тему (список всех сообщений выбранной темы)
"Login" => Обслуживает авторизацию (вход в форум под своей учетной записью)
"Post" => Обслуживает публикацию сообщений, создание тем, опросов
"Poll" => Обслуживает добавление голосов к опросу
"Reg" => Регистрация, восстановление пароля...
"Online" => Список активных пользователей (тех кто в онлайне)
"Members" => Список всех пользователей, различная сортировка...
"Help" => Обслуживание файлов помощи (FAQ, просмотр, сортировка)
"Search" => Поиск по форуму. Расширенный поиск. Просмотр новых сообщений со времени последнего визита, активные темы.
"Mod" => Модерирование. Действия модератора. Перенос тем. Разделение и т.д.
"Print" => Вид темы для печати, сохранение темы в HTML, Ms Word...
"Forward" => Отсылка ссылки на тему другу на e-mail.
"Mail" => Написание и отправка письма пользователю на e-mail.
"Invite" => Пока функции такой нет. Но разработчики заранее уже заготовки делают себе
"ICQ" => Отсылка сообщения на ICQ
"AOL" => Отсылка сообщения на AOL
"YAHOO" => Отсылка сообщения на YAHOO
"MSN" => Отсылка сообщения на MSN
"report" => Сообщить модератору (обслуживание ссылки на доклад модератору на e-mail о сообщении)
"chat" => Модуль чата. Invision Power Chat платный чат. Поэтому его нету в наборе
"integ" => Отсылка сообщения на Integrity Messenger
"Msg" => Обслуживание Личного Ящика. Прием отсылка и другие действия с PM"ками (сообщениями в Приват)
"UserCP" => Большой скрипт работы с "Профилем". Это и управление подпиской и настройки форума и т.д...
"Profile" => Просмотр профиля пользователя...
"Track" => Подписка на тему/форум
"Stats" => 10 лучших авторов, 10 лучших авторов сегодня и ссылка на состав Администрации
"Attach" => Скачивание присоединенного файла к сообщению (аттача)
"ib3" => Модуль входа в форум для Ikonboard 3. Связано с конвертированием из IkonBoard3
"legends" => Смайлики, помощь по bbcode
"modcp" => Панель управления модератора. И все что с ней связано
"calendar" => Календарь. публикация, изменение событий календаря...
"buddy" => Контакт-лист пользователя. Добавление пользователя в контакты и т.д.
"boardrules" => Общие правила всего форума. Из просмотр.
"mmod" => Мультимодерация. Создание общих правил для модерирования форумов
"warn" => Система рэйтингов/предупреждений
"home" => Просмотр портала IPDynamic Lite. Вот по этой ссылке ясно почему act=home это портал
"module" => Дополнительные модули синхронизации. Появились только в 1.2


Так что если вы что-то хотите изменить загляните в адресную строку браузера, посмотрите, чему равен параметр act , и вы сразу будете знать где искать. А место, что вы ищете можете найти по какому-нибудь тексту, который не динамический (не изменяется). А раз текст статичный, значит он в языковых файлах наверняка есть. Значит найдя его через поиск в языковых файлах вы сможете увидеть какая переменная соответствует данной записи и уже искать нужное место по имени переменной, что как правило приведет вас в шаблоны с уже знакомым HTML языком Там-то имея базовые навыки английского (как правило переменные называются простыми понятными словами на английском языке) вы сможете там найти нужное и понять уже без языковых переводов что есть что.

У вас могут возникнуть вопрос, а что же такое: "idx" => "Boards", "SC" => "Boards", "SF" => "Forums", "SR" => "Forums", "ST" => "Topics",
idx - index - главная страница форума
SC - Show Category - просмотр выбранной категории (список форумов выбранной категории)
SF - Show Forum - Просмотр форума (список тем выбранного форума)
SR - Show Rules - Просмотр правил форума (их можно добавлять к каждому форуму свои через AdminCP)
ST - Show Topic - Просмотр темы (список сообщений выбранной темы)

Также в последней версии 1.2 ввели несколько более сокращенных видов ссылок, которые имитирует эти обычные. Это
index.php?showforum=3 - эта запись идентична index.php?act=SF&f=3
index.php?showtopic=33234 - эта запись идентична index.php?act=ST&f=номер_форума&t=33234
index.php?showuser=343 - эта запись идентична index.php?act=Profile&CODE=03&MID=343

Эти три сокращения реализуются кодом, который записан в index.php:
if ($ibforums->input["showforum"] != "") { $ibforums->input["act"] = "SF"; $ibforums->input["f"] = intval($ibforums->input["showforum"]); } else if ($ibforums->input["showtopic"] != "") { $ibforums->input["act"] = "ST"; $ibforums->input["t"] = intval($ibforums->input["showtopic"]); // Grab and cache the topic now as we need the "f" attr for // the skins... $DB->query("SELECT t.*, f.topic_mm_id, f.name as forum_name, f.quick_reply, f.id as forum_id, f.read_perms, f.reply_perms, f.parent_id, f.use_html, f.start_perms, f.allow_poll, f.password, f.posts as forum_posts, f.topics as forum_topics, f.upload_perms, f.show_rules, f.rules_text, f.rules_title, c.name as cat_name, c.id as cat_id FROM ibf_topics t, ibf_forums f , ibf_categories c WHERE t.tid=".$ibforums->input["t"]." and f.id = t.forum_id and f.category=c.id"); $ibforums->topic_cache = $DB->fetch_row(); $ibforums->input["f"] = $ibforums->topic_cache["forum_id"]; } else if ($ibforums->input["showuser"] != "") { $ibforums->input["act"] = "Profile"; $ibforums->input["MID"] = intval($ibforums->input["showuser"]); }

А вообще все, что вы хотите изменить, можно найти поиском в файлах форума. Поэтому всегда держите копию всех файлов форума у себя на жестком диске. Ведь поиск в файлах на сервере через ftp попросту невозможен. Но это уже тема для другой статьи. Так что The End. Удачи

Все комментарии и вопросы по статье пожалуйста в ! Если будут изменения или какие-либо важные вопросы и ответы, я их добавлю тут в тему!

Есть небольшая уязвимость в форумном движке IPB. Можно потроллить админа и заодно убить его форум на несколько дней (проверено лично на двух форумах).

Поздравляем участника конкурса

Этот текст был прислан на конкурс авторов, который мы запустили весной. Мы разобрались с большим количеством пришедших материалов, подвели итоги и наградили победителей. Автор этой заметки получил приз - трехмесячную подписку на «Хакер». Поздравляем!

Разберемся по шагам, как это работает.

  1. Сначала нужно зарегистрироваться на форуме, чтобы иметь возможность постить.
  2. После регистрации создать «мусорную» тему там, куда модераторы почти не заглядывают, либо оставить пост в одной из таких тем. Содержание поста или темы должно быть огромного размера. Некоторые админы допускают ошибки при конфигурировании сервера, позволяя пользователям отправлять посты с нелимитированной длиной текста. Лично я хешировал слово DDoS в SHA-512 и копировал хеш в форму отправки поста до тех пор, пока браузер не повисал на несколько секунд от количества вставляемого на страницу текста.
  3. Отправляем новую тему или пост. Движок реализован наплевательски, и длинные посты не сокращаются с возможностью их расширить по клику на кнопку. А выводом таких постов занимается PHP, а не клиентский JS. Как итог - получаем огроменную страницу с несколькими миллионами символов, которые грузятся синхронно с сервера.
  4. Начинаем DDoS-атаку на тему с огромным постом. Поскольку все запросы идут напрямую к PHP, а от него к БД, сайт очень быстро сляжет с ошибкой 500 Internal Server Error, а потом и с 504 Gateway Timeout (поскольку база данных даже на VPS не сможет так быстро отдавать такой огромный пост, что уж говорить о Shared-хостинге) и встать сможет еще не скоро, ведь запросы к БД будут висеть и ждать ответа от сервера и базы данных.
  5. Скрыть атаку от особо глупых модераторов можно, учудив финт ушами. В IPB есть модуль «Активность» (Discover в английской версии движка). Это такая лента, которая хранит историю последних постов. Так вот, чтобы отвлечь внимание модераторов (которые могут задетектить тему, стереть ее и забанить аккаунт), нужно сразу же после отправки мусорного поста начать флуд на страницу с активностью. Увидев логи, сисадмин будет думать, что атака идет на ленту сообщений и не сможет обнаружить корень проблемы - созданную нами тему, которая, кстати, тоже целиком в несвернутом виде будет висеть на странице. Единственное, что он сможет сделать, - закрыть ленту от незарегистрированных пользователей. Да и то это сомнительное решение, от которого страдает юзабилити.
  6. Несколько часов интенсивной DDoS-атаки на мусорную страницу, и буквально через пару суток (максимум - недель) БД форума упадет навсегда. Нет, не просто упадет, а будет сломана без возможности восстановления. Не уверен, с чем это связано и почему это происходит, но это происходит. Таким образом, можно не только легко в пару кликов положить форум даже на Dedicated-сервере, но и уничтожить его базу данных, которую без бэкапа восстановить будет крайне затруднительно.

А еще можно забить место на диске логами. Обычно арендуют VPS с SSD-диском на 10–20 Гбайт, а картинки на форум разрешают загружать только со сторонних ресурсов. Так вот, забить логи очень просто - нужно использовать в названии темы тот же длинный хеш. Слегка увеличить эффект можно также при помощи рефереров, вставляя в них тот же хеш.

Вот такой интересный способ заставить владельца форума IPB задуматься о переезде на другой движок.

Конкурс продолжается

Мы решили продлить конкурс и превратить его в постоянную акцию. Прислав нам описание хака, полезный совет или описание клевой неизвестной проги, ты по-прежнему можешь получить подписку на месяц, три месяца или, если постараешься, на год.

Loading...Loading...