XSS атаки через помилки при запитах до БД

22:46 21.11.2009

Раніше я вже розповідав про XSS уразливості на 404 сторінках. І ще в 2008 році я запланував розповісти про один цікавий і поширений напрямок XSS атак - це атаки через помилки при запитах до БД.

Cross-Site Scripting уразливості мені доводилося знаходити у різних веб додатках, а також у браузерах та веб серверах. І окрім XSS дірок на Error 404 сторінках, також часто я зустрічав XSS уразливості в повідомленнях про помилки при запитах до Баз Даних (XSS через SQL Error).

Стандартний вектор атаки у випадку XSS через SQL Error - це вказання XSS-коду в якості значення параметра, що передається до БД (при цьому потрібно, щоб даний SQL запит став некоректним). Що призведе до виведення повідомлення веб додатку про помилку при запиті до БД, з вказанням рядка запиту, де наявна помилка, і до виконання JavaScript коду в браузері користувача.

XSS:

http://site/script?param=%27%3Cscript%3Ealert(document.cookie)%3C/script%3E

Подібні уразливості я знаходив неодноразово на різних сайтах та в різних веб додатках, зокрема в WordPress, Relay та Hydra Engine.

Наприклад, в WordPress для виконання JS-коду в повідомленні про помилку, потрібно було послати спеціальний символ (в данному випадку %A0), про що я вже розповідав детально.

XSS:

http://site/?s=%A0%3Cscript%3Ealert(document.cookie)%3C/script%3E

В деяких випадках (зокрема у PHP-додатках, що використовують MySQL), потрібно використовувати не тег script, а тег body для проведення XSS атаки, щоб код був повністю виведений в помідомленні про помилку в SQL запиті. Як, наприклад, у випадку уразливості на www.zemerl.com.

XSS:

http://site/script?param='%20and%20%3Cbody%20onload=alert(document.cookie)%3E

Зазначу, що ще в 2006 році була знайдена уразливість в PHP, що пов’язана з функцією mysql_error. Яка повертає в нефільтрованому вигляді значення помилки останнього SQL-запиту в MySQL, що може призвести до XSS атаки. Дана уразливість була виявлена в PHP 4.4.x та 5.1.x. Тому веб додатки, що використовують дану функцію і виводять її результати, можуть бути вразливі до XSS.

Так що веб розробники завжди повинні перевіряти свої розробки на наявність XSS уразливостей в повідомленнях про помилки при запитах до БД. Щоб не допускати подібних уразливостей.


Одна відповідь на “XSS атаки через помилки при запитах до БД”

  1. MustLive каже:

    You can read this article on English in The Web Security Mailing List: XSS vulnerabilities via errors at requests to DB.

Leave a Reply

You must be logged in to post a comment.