Як захистити сайт від злому через phpMyAdmin

  1. опис проблематики
  2. Що потрібно для проведення успішної атаки на сайт через phpMyAdmin?
  3. Як захистити свій сайт від атак через phpMyAdmin?
  4. додаткова література

У статті розглядаються загрози для сайту при наявності відкритого доступу до популярного компоненту для роботи з базою даних - phpMyAdmin. Перераховані основні проблеми, а також вказані рекомендації щодо зниження ймовірності злому сайту при використанні phpMyAdmin.

1. Опис проблематики

2. Що потрібно для проведення успішної атаки на сайт через phpMyAdmin?

3. Як захистити свій сайт від атак через phpMyAdmin?

4. Додаткова література

опис проблематики

Більшість власників VDS / VPS / DDS майже завжди використовують настройки сервера за замовчуванням, при цьому зовні «дивиться» багато зайвих скриптів і сервісів, через які сервер або сайти можуть зламати. Показовим прикладом є інструмент для роботи з базою даних phpMyAdmin , Який входить в більшість панелей управління хостингом і надзвичайно популярний серед веб-майстрів. Залишаючи відкритим доступ до цього інструменту, адміністратор сервера надає можливість хакеру без особливих зусиль зламати сайт, скомпрометувати дані в БД і закріпитися на скомпрометованість сервері.

Проблема з phpMyAdmin є не тільки у власників виділених серверів. Багато веб-майстри, що розміщують сайти на віртуальному хостингу, залишають phpMyAdmin відкритим, причому в директоріях з відомими іменами: / pma, / myadmin, / phpmyadmin, / phpMyAdmin. При скануванні сервера боти їх з легкістю знаходять, а хакери - експлуатують.

Малюнок 1. Типове сканування сайту на наявність відкритого phpMyAdmin

Типове сканування сайту на наявність відкритого phpMyAdmin

Чим небезпечний phpMyAdmin, виставлений зовні? Через скрипти даного інструменту можна:

  • завантажити хакерський шелл (оболонку) і будь-який інший довільний файл на сервер;
  • прочитати довільний файл на сервері;
  • виконати довільний код на цільовій системі;
  • витягти або модифікувати дані в базі даних (а для багатьох CMS, наприклад, vBulletin / IPB / MODx впровадити шкідливий код, бекдори і шелли в шаблони сторінок або плагіни).

Публічних вразливостей в «движку» завжди було досить, що підтверджують дані, наведені на малюнку 2.

Малюнок 2. Список публічних вразливостей phpMyAdmin з 2001 року на cvedetails. com

Що потрібно для проведення успішної атаки на сайт через phpMyAdmin?

  • У разі старих версій "движка", встановлених на сервері або сайті, досить доступу до скриптів в каталозі уразливого phpMyAdmin. За допомогою експлуатації однієї з безлічі вразливостей , Можна скомпрометувати цільової сайт або сервер, отримати практично повний контроль над аккаунтом віртуального хостингу, а при вдалому збігу обставин і повним контролем над сервером.
    Ось так в балці веб-сервера виглядає успішна атака на сайт, розміщений на виділеному сервері під керуванням ISPManager з відкритим доступом до phpMyAdmin:


Малюнок 3. Витяг з access _ log з успішною завантаженням веб-шелла на сайт через phpMyAdmin

  • Якщо версія phpMyAdmin "свіжа", для якої не анонсовані публічні уразливості, то в більшості випадків для проведення атаки досить логіна і пароля від бази даних. Дізнатися ці дані простіше, ніж здається:
    • як і раніше неосвічені веб-майстри і власники сайту, а часом і адміни серверів залишають відкритими бекапи сайтів, в яких прописані логін / пароль у відкритому вигляді,
    • на деяких віртуальних хостингах можна отримати доступ з сусідніх сайтів до файлів wp-config.php, configuration.php тощо,
    • доступи можна підглянути через експлуатацію вразливостей в скриптах CMS і іншими способами.

Як захистити свій сайт від атак через phpMyAdmin?

Якщо вам життєво важлива наявність даного інструменту на сайті або хостингу:

  1. поновіть його до останньої доступної версії;
  2. закрийте доступ до директорії зі скриптами даного «движка» (аутентифікація по IP, за допомогою серверної авторизації, по кодовому слову). Досить розмістити .htaccess файл в каталозі phpMyAdmin з кодом

Order Deny, Allow
Deny from All
Allow from 1.2.3.4
Де 1.2.3.4 - це ваш IP

Для інформації: у VDS серверів з ISPManager скрипти даного інструменту розташовані в каталозі / usr / share / phpMyAdmin.

  1. Переконайтеся, що на вашому сайті недоступна копія phpMyAdmin по одному з перерахованих адрес, так як боти сканують в першу чергу по ним:
  • http: // ваш_сайт / phpmy /
  • http: // ваш_сайт / phpmyadmin /
  • http: // ваш_сайт / phpMy /
  • http: // ваш_сайт / _phpmyadmin /
  • http: // ваш_сайт / pma /
  • http: // ваш_сайт / MyAdmin /
  • http: //ваш_сайт/scripts/setup.php
  • http: //ваш_сайт/dumper.php
  • http: // ваш_сайт / admin / phpmyadmin
  • http: // ваш_сайт / admin / pma
  • http: // ваш_сайт / dbadmin
  • http: // ваш_сайт / mysql-admin
  • http: // ваш_сайт / mysqlmanager
  • http: // ваш_сайт / mysql
  • http: // ваш_сайт / phpadmin
  • http: // ваш_сайт / phpmanager
  • http: // ваш_сайт / phpmyadmin1
  • http: // ваш_сайт / phpmyadmin2
  • http: // ваш_сайт / phpMyAdmin-2
  • http: // ваш_сайт / php-myadmin
  • http: // ваш_сайт / phpmy-admin
  • http: // ваш_сайт / pma2005
  • http: // ваш_сайт / PMA2005
  • http: // ваш_сайт / p / m / a
  • http: // ваш_сайт / pma
  • http: // ваш_сайт / sqlmanager
  • http: // ваш_сайт / sqlweb
  • http: // ваш_сайт / typo3 / phpmyadmin
  • http: // ваш_сайт / webadmin
  • http: // ваш_сайт / webdb
  • http: // ваш_сайт / web / phpMyAdmin
  • http: // ваш_сайт / xampp / phpmyadmin
  • http: //ваш_сайт/myadminscripts/setup.php
  • http: // ваш_сайт / mysqladmin
  • http: // ваш_сайт / php-my-admin
  • http: // ваш_сайт / phpmyadmin
  • http: // ваш_сайт / websql
  • http: // ваш_сайт / myadmin
  • http: // ваш_сайт / sql /
  • http: // ваш_сайт / mysql /

Якщо скрипти для роботи з базою даних вам не потрібні (наприклад, сайт ви вже налаштували, базу даних виправили), видаліть phpMyAdmin з хостингу повністю. Тим самим ви істотно знижуєте ймовірність злому.

До речі, для роботи з базою даних є більш легковагі і менш вразливі аналоги, наприклад скрипт adminer , sxd . Але доступи до них також слід обмежити лише адміністратору сайту або сервера.

додаткова література

Для зацікавлених веб-майстрів і власників сайтів про уразливості phpMyAdmin наводимо додаткову інформацію для вивчення:

Як захистити свій сайт від атак через phpMyAdmin?
2. Що потрібно для проведення успішної атаки на сайт через phpMyAdmin?
Як захистити свій сайт від атак через phpMyAdmin?
IRC (Internet Relay Chat)