SQL DB Structure Extraction уразливості

22:48 13.03.2010

Існує такий різновид Information Leakage уразливостей як SQL DB Structure Extraction. Дана уразливість полягає в тому, що у веб додатку має місце витік інформації про структуру бази даних. Даний витік інформації може стати в нагоді при SQL Injection атаці.

Подібну уразливість вперше я знайшов ще в 2006 році (на одному сайті) і дав їй таку назву. Подібні уразливості я знаходив на багатьох веб сайтах, зокрема на bizua.com.ua, zoom.cnews.ru та job.ukr.net. А також у багатьох веб додатках, зокрема в WordPress (неодноразово), W-Agora, Nucleus, Athree CMS (двічі) та Abton.

Приклад витоку інформації, що відбувається при використанні однієї з SQL DB Structure Extraction уразливостей в WordPress:

SELECT * FROM wp_posts WHERE 1=1 AND (post_status = "publish" OR post_author = 1 AND post_status != 'draft' AND post_status != 'static') AND post_status != "attachment" AND post_status <> ‘trash’ GROUP BY wp_posts.ID ORDER BY post_date DESC LIMIT -30, 15

В даному випадку важливою інформацією є назва таблиці (wp_posts), зокрема її префікс (wp), який використовується й в інших таблицях WP на вразливому сайті.

В чому полягає різниця між SQL DB Structure Extraction та SQL Error? Бо в обох випадках виводиться повідомлення про помилку в запиті до бази даних.

Повідомлення про помилку в SQL запиті (SQL Error) бувають різні:

1. Виводиться лише повідомлення про помилку при запиті до БД без жодних деталей. Іноді при цьому може бути повідомлення про скрипт, в якому відбулася помилка, в тому числі може бути вказаний повний шлях до нього на сервері, що є Full path disclosure уразливістю. А в інших випадках може не бути жодних деталей, тільки згадка про помилку при запиті до БД.

2. Виводиться повідомлення про помилку при запиті до БД та частина SQL запиту, в якому є помилка. В даному випадку, зазвичай, інформації про структуру БД не витікає взагалі. Але в подібних випадках можливе проведення XSS атаки через помилки при запитах до БД.

3. Виводиться повідомлення про помилку при запиті до БД з детальною інформацією про даний SQL запит (або декілька запитів). Коли витікає інформація про структуру БД - про таблиці та їх поля в СУБД. Ось цей варіант і є SQL DB Structure Extraction.

Тобто SQL DB Structure Extraction уразливість - це такий варіант SQL Error, коли відбувається помилка при запиті до бази даних і на сторінці (при повідомленні про помилку при запиті до БД, або навіть без даного повідомлення) виводиться інформація про структуру БД.


Одна відповідь на “SQL DB Structure Extraction уразливості”

  1. MustLive каже:

    You can read this article on English: SQL DB Structure Extraction vulnerabilities.

Leave a Reply

You must be logged in to post a comment.