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