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 та SQL Error. Бо в обох випадках виводиться повідомлення про помилку в запиті до бази даних.
Повідомлення про помилку в SQL запиті (SQL Error) бувають різні:
1. Виводиться лише повідомлення про помилку при запиті до БД без жодних деталей. Іноді при цьому може бути повідомлення про скрипт, в якому відбулася помилка, в тому числі може бути вказаний повний шлях до нього на сервері, що є Full path disclosure уразливістю. А в інших випадках може не бути жодних деталей, тільки згадка про помилку при запиті до БД.
2. Виводиться повідомлення про помилку при запиті до БД та частина SQL запиту, в якому є помилка. В даному випадку, зазвичай, інформації про структуру БД не витікає взагалі. Але в подібних випадках можливе проведення XSS атаки через помилки при запитах до БД.
3. Виводиться повідомлення про помилку при запиті до БД з детальною інформацією про даний SQL запит (або декілька запитів). Коли витікає інформація про структуру БД - про таблиці та їх поля в СУБД. Ось цей варіант і є SQL DB Structure Extraction.
Тобто SQL DB Structure Extraction уразливість - це такий варіант SQL Error, коли відбувається помилка при запиті до бази даних і на сторінці (при повідомленні про помилку при запиті до БД, або навіть без даного повідомлення) виводиться інформація про структуру БД.