Як мені поламали сайт

Жив був собі один сайт на не дуже поширеній cms. Звичайний такий портальчик – новини, статті, галерея, форум і т.д. Спочатку в нього був період розвитку, потім період занепаду і вже майже рік, як це не сайт, а купка тематичного контенту для пошукових систем + кілька рекламних блоків adsense.

Життєвий цикл одного сайту

Весною його поламали турецькі “хакери”. Повставляли купу редіректів на свій “модний” сайт. Я не мав часу розбиратися, що та як – просто відновив базу з бекапу. Після того той турок ще двіччі редагував новини на головній і на цьому все заспокоїлося.

Учора ж я переносив всі старі сайти на інший сервак, а заодно скачав бекапи на локальну машину. Ну й вирішив нарешті розібратися в чому там був прикол.

Знайшов кілька експлоїтів для того двіжка – один спрацював. Виявилося, що вразливе місце було в скрипті галереї:

$sql = $db->Query("SELECT * FROM ". PREFIX ."_gallery_items WHERE id=$_REQUEST[img_id] );

Як бачимо $_REQUEST[img_id] передається в SQL запит без попередньої обробки. От вам і Sql Injection. І таке в кількох місцях.

А далі діло техніки. Знаючи запит і структуру бд формуємо інєкцію і отримуємо логін та пароль адміна. Пароль правда був захешований, та як видно хлопці не полінувалися підібрати md5 хеш методом перебору (знайшов його в кількох базах).

За кілька років я вперше зустрівся з реальним використанням Sql Injection на свому сайті. Ось такий цікавий досвід.

5 thoughts on “Як мені поламали сайт

  1. В действительности большинство сайтов и блогов находятся под постонной атакой ботов, который ищут уязвимости – я как-то ради любопытсва пологировал чуток приходящие запросы – большинство запросов получающих 404-ую – это попытки найти дыру в вашем сайте – кстати, были тама SQL иньекции для какой-то галлереи, видел и для Jooml’ы (ибо специфический у них УРЛ), и еще много разных…

    • Теж постійно бачу в error логах цікаві запити. Аналогічні програми використовуються і для тестування сайту на наявність вразливих місць.

  2. К сожалениею sql-инъекции это очень распространенный источник проблем.
    У меня у друга так недавно, кстати тоже турецкие хакеры, взломали сайт.
    Сайт там правда был на старом движке phpNuke.
    Так что друзья, пишите максимально защищенный код.

  3. Десь вже згадував про таку проблему, може і в твіттері. Відкриті ЦМС в першу чергу ламають, тому потрібно слідкувати з оновленнями на офіційному сайті – бо в першу чергу про проблеми дізнаються хакери і відразу пишуть бот який вміє її використовувати новий експоїт – відповідно купу сайтів ламають автоматично. Я кілька раз постраждав через незнання і лінивство :)
    На сайті джумли наприклад є хороші інструкції, по адмініструванню ЦМС http://developer.joomla.org/security/articles-tutorials/260-joomla-administrators-security-checklist.html.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>