Архів для категорії 'Статті'

Classification of DoS vulnerabilities in web applications

22:49 29.11.2008

This is English version of my Classification of DoS vulnerabilities in web applications article.

In my Security manual, I told about DoS vulnerabilities in detail, which often happen in modern web applications (and also in browsers). Using of Denial of Service vulnerabilities in web applications can lead to server overload, up to its complete denial of service.

There are next types of Denial of Service vulnerabilities:

1. Classic DoS.

  • Full denial.
  • Overload.

2. Recursive File Include.

3. Looped DoS.

Classic DoS.

These classic DoS vulnerabilities in web application divide on full denial DoS and overload DoS.

In case full denial DoS, vulnerability leads to freezing of web server, when its restart is needed. Or leads to crashing of process, web server (e.g. Apache) or database (e.g. MySQL), when server itself continue to work, but part of its functions become inaccessible (till restart of appropriate process). Also there are attacks on web applications which belong to this type of DoS, which lead to change of settings of web applications (i.e. via access to file system and changing of configuration files), which completely stop their work.

In case of overload DoS, vulnerability leads to heavy overload of web server. Such happens during execution of resource-capacious operations (e.g. request to DB and data output), when there is no restrictions on capacity of executable operations, or this restrictions are setting by user and they are not checking (i.e. they can be arbitrarily manipulated). Which leads to that user knowingly or unintentionally can send to execution heavy request, which overloads server.

Recursive File Include.

Vulnerabilities Recursive File Include, which I wrote about earlier - it’s one of new types of Denial of Service.

Recursive File Include - it’s Local file include vulnerability, which is using for making DoS attack. I.e. it is local inclusion of the files (scripts), which leads to DoS attack due to recursion, when files are infinitely including (which overloads server).

Looped DoS.

Looped DoS - it’s vulnerabilities in redirectors, which lead to looped redirect. It happens when redirector send client (user browser) to itself, which leads to infinite redirection.

In case if client, which has visited this redirector at site, has no restrictions on redirection, then it can goes to this web application for a long period of time (which will be sending it to itself all the time), which leads to server overload.

Класифікація DoS уразливостей у веб додатках

20:42 29.11.2008

В своєму Посібнику з безпеки, я детально розповів про DoS уразливості, що часто трапляються в сучасних веб додатках (а також браузерах). Використання Denial of Service уразливостей у веб додатках може призвести до перенавантаження сервера, аж до його повної відмови в обслуговуванні.

Denial of Service уразливості бувають наступних видів:

1. Класичні DoS.

  • Повної відмови.
  • Перенавантаження.

2. Recursive File Include.

3. Зациклений DoS (Looped DoS).

Класичні DoS.

Дані класичні DoS уразливості у веб додатках діляться на DoS повної відмови та DoS перенавантаження.

У випадку DoS повної відмови, уразливість призводить до підвисання веб сервера, коли потрібне його перезавантаження. Або вибивання процесу, веб сервера (наприклад, Apache) чи СУБД (наприклад, MySQL), коли сам сервер продовжує працювати, але частина його функцій стає недоступною (до перезапуску відповідного процесу). А також до даного типу DoS відносяться атаки на веб додатки, що призводять до зміни налаштувань веб додатів (наприклад, через доступ до файлової системи і зміни файлів конфігурації), які повністю зупиняють їх роботу.

У випадку DoS перенавантаження, уразливість призводить до сильного перенавантаження веб сервера. Подібне трапляється при виконанні ресурсоємних операцій (наприклад, запит до БД і виведення інформації), коли відсутні обмеження на об’єми виконуємих операцій, або дані обмеження задаються користувачем і вони не перевіряються (тобто ними можна буде довільно маніпулювати). Що призводить до того, що користувач навмисно чи ненавмисно може послати на виконання тяжкий запит, який перенавантажить сервер.

Recursive File Include.

Уразливості Recursive File Include, про які я писав раніше - це один з нових видів Denial of Service.

Recursive File Include - це Local file include уразливість, що використовується для проведення DoS атаки. Тобто це локальне включення файлів (скриптів), що призводить до DoS атаки за рахунок рекурсії, коли файли інклюдяться нескінченно (що перенавантажує сервер).

Зациклений DoS (Looped DoS).

Зациклений DoS (Looped DoS) - це уразливості в редиректорах, що призводять до зацикленої редирекції. Це відбувається коли редиректор перенаправляє клієнта (браузер користувача) на самого себе, що призводить до нескінченної редирекції.

У випадку якщо клієнт, який відвідав даний редиректор на сайті, не має обмежень на редирекцію, то він може тривалий час звертатися до даного веб додатку (який буде весь час перенаправляти його на себе), що призведе до перенавантаження серверу.

Post Persistent XSS (Saved XSS) уразливості

22:46 22.11.2008

В минулому році, 14.08.2007, я виявив новий тип Cross-Site Scripting уразливостей, що є підтипом Persistent XSS, який я назвав Post Persistent XSS (Saved XSS). Дані уразливості можуть використовуватися для доступу до локальної файлової системи. А також, як я виявив нещодавно, для виконання коду через браузери.

Всього я виявив Saved XSS уразливості в наступних браузерах: Internet Explorer (IE6 та IE7), Chrome та Opera. Про дані XSS я писав в проекті День багів в браузерах 2.

Спочатку я виявив 14.08.2007 дану XSS уразливість в Internet Explorer. А потім, 06.10.2008, виявив подібну уразливість в Google Chrome та Opera.

Проведення атаки.

При збереженні сторінки зі “спеціальним” URL, в коді сторінки зберігається XSS код. І відбувається виконання XSS коду при відкритті даної сторінки (причому її відкритті в будь-якому браузері, не тільки в тому, в якому вона зберігалася).

XSS:

http://site/?--><script>alert("XSS")</script>

Для прихованої атаки можна використати iframe в коді сторінки:

<iframe src='http://site/?--><script>alert("XSS")</script>' height='0' width='0'></iframe>

За допомогою даної атаки можна розмістити XSS код на будь-якому сайті. В тому числі й на сайтах на яких немає Cross-Site Scripting уразливостей (або вони ще не знайдені). І потім потрібно лише змусити жертву зберігти дану веб сторінку, щоб коли вона (або інший користувач) відкриє цю сторінку, виконався XSS код.

До речі, як я писав нещодавно в записах Code Execution через XSS та Міжбраузерний Code Execution через XSS, дані Saved XSS уразливості можуть бути використанні для проведення Code Execution атак. Коли через дані XSS проводиться виконання коду через браузери.

Відео про Blind SQL Injection в MySQL

22:48 15.11.2008

Продовжуючи розпочату традицію, після попереднього відео про Authentication Bypass у phpBB, пропоную новий відео секюріті мануал. Цього разу відео про Blind SQL Injection в MySQL. Рекомендую подивитися всім хто цікавиться цією темою.

Demonstration of Blind MySQL Injection (mysql_bftools)

В даному відео ролику наочно демонструється проведення Blind SQL Injection атаки за допомогою інструментів mysql_bftools (з отриманням різних даних з БД та отриманням файлів). Рекомендую подивитися дане відео для розуміння векторів атаки за допомогою SQL ін’єкцій та небезпеки подібних уразливостей.

XSS уразливості в 215000 флеш файлах

22:41 12.11.2008

Проводячи сьогодні дослідження уразливості на cpmstar.com, що я знайшов 19.01.2008, я виявив, що в Інтернеті дуже багато флешек з цією ж самою уразливістю. Всього в Інтернеті біля 215000 флеш файлів вразливих до Cross-Site Scripting (на більше 200000 сайтів).

Це видно з даних Google:

filetype:swf inurl:clickTAG

І це тільки ті флешки, що проіндексував Гугл, а реально їх може бути набагато більше. В результатах трапляються сайти з невразливими флешками (або сайти де вже немає згаданих флешек), але це поодинокі випадки, і майже всі сайти в результатах пошуку Гугла є вразливими. До речі, торік я вже писав, що 500000 flash файлів на популярних сайтах уразливі до XSS.

XSS:

Уразливість в наступному AS коді:

getURL(_root.clickTAG, "_blank");

Атака відбувається через передачу XSS коду flash файлу в параметрі clickTAG:

http://site/flash.swf?clickTAG=javascript:alert('XSS')

При кліку на флешку відбувається передача функції getURL рядку, що переданий флешці через параметр clickTAG. Таким чином може виконатися JS код, що був переданий флешці.

На http://server.cpmstar.com:

Зазначу, що флешки з target = “_blank” (в getURL) не дозволяють дістатися до cookies. А також вони не працють в IE6. Якщо target заданий не “_blank” (або зовсім не вказаний), то тоді флешки дають можливість дістатися до кукісів в усіх браузерах (та працють в IE6).

Ось ще приклади вразливих флешек на трьох сайтах:

На http://www.banjohangout.org:

На http://ad1.emediate.dk:

На http://www.open4smart.eu:

Існують подібні флешки, що використовують змінну clickTAG, з наступним AS кодом:

getURL(_root.clickTAG, _root.TargetAS);

Атака відбувається з використанням змінних clickTAG і TargetAS:

http://site/flash.swf?clickTAG=javascript:alert('XSS')&TargetAS=

На http://www.adspeed.com:

Це дозволяє дістатися до кукісів в усіх браузерах та атака нормально працює в IE.

Дані XSS - це strictly social XSS, про які я вже згадував стосовно уразливості на craigslist.org. Про даний клас уразливостей я ще розповім детально.

P.S.

Як я вияснив під час додаткових досліджень, при target = “_blank” (в getURL) можна дістатися до кукісів в Firefox 3. Тому при вказаному в флешці target = “_blank” до кукісів не можна дістатися в IE6 та Mozilla, зате можна дістатися до кукісів в Firefox 3 і можливо в інших браузерах.

Міжпрограмні DoS (Cross-Application DoS)

22:43 08.11.2008

Існує такий вид Denial of Service уразливостей як Міжпрограмні DoS (Cross-Application DoS). Подібні уразливості я неодноразово знаходив і вони є достатньо поширеними в наш час, коли різні додатки використовують зовнішні компоненти (бібліотеки).

Дані уразливості пов’язані зі зовнішніми компонентами, що використовує додаток. І коли в даних компонетах (бібліотеках) знаходять уразливості, то всі додатки, що використовують ці компоненти, стають вразливими.

Серед наочних прикладів варто згадати DoS дірки в Internet Explorer, що впливають на всі браузери на движку IE (а іноді й на Windows в цілому), DoS в движку Mozilla (Gecko), що впливають на Firefox, Seamonkey та інші браузери на даному движку, а також PCRE, в якому періодично знаходять переповнення буфера, і дані уразливості проявляються в PHP, Adobe Flash та інших додатках.

Іншим прикладом є поштові клієнти, що використовуєть браузерні движки, і тому можуть мати DoS дірки, що були знайдені в даних браузерах. Зокрема Outlook Express і Outlook використовують движок IE, а Thunderbird і поштовий клієнт Seamonkey використовують движок Mozilla - й тому вони можуть бути вразливими до подібних атак. Більшість атак на браузери вимагає підтримки яваскрипту, що за звичай відключений в поштових клієнтах. Але існують DoS уразливості, що не потребують JS - як наприклад знайдені мною DoS в Outlook Express та DoS в Outlook.

Також через дірки в зовнішніх бібліотеках можуть бути вразливими файлові менеджери. Такі як Windows Explorer та Total Commander. У всіх зазначених випадках, і в Outlook Express та Outlook, і Windows Explorer та Total Commander, атака відбувається через дірки в Internet Explorer.

Такі уразливості можуть існувати як в клієнтських додатках (таких як Outlook Express, Windows Explorer, та інших додатках, що використовуєть компоненти IE) і в серверних додатках (наприклад, модулях веб сервіра), так і в веб додатках (коли вразливий деякий зовнішній компонент).

Є також інші види міжпрограмних уразливостей, такі як міжпрограмний XSS (про даний тип XSS я ще розповім) та міжпрограмне виконання коду (дані уразливості мені також доводилося знаходити). Котрі, як і міжпрограмні DoS, проявляються через вразливі компоненти, що використовує додаток.

DDoS атаки

22:49 25.10.2008

В своїй презентації DDoS Attacks, Jignesh Patel розповідає про DDoS атаки. Основи DoS, опис та таксономія DDoS, захисні механізми та сучасні техніки захисту від даних атак.

Classification of DoS vulnerabilities in browsers

22:42 22.10.2008

This is English version of my Classification of DoS vulnerabilities in browsers article.

During doing the researches of security of browsers in this year, especially in last two months (when I did projects Day of bugs in Google Chrome and Day of bugs in browsers), I created my own classification of DoS vulnerabilities in browsers. Among different browsers I often have to deal with Denial of Service vulnerabilities and they are various, with some typical criterions, which I decided to highlight in this classification.

All these vulnerabilities of denial of service are DoS, but instead of one general type of this class of vulnerabilities now, if necessary, will be possible to use three types (for refinement). These DoS types are typical for browsers. Note, that other client applications can have all or part of these types of DoS vulnerabilities.

There are next types of Denial of Service vulnerabilities in browsers:

1. Crashing DoS.

2. Blocking DoS.

  • Freezing.
  • Blocking.

3. Resources consumption DoS.

  • CPU overload.
  • Memory consumption.

Quite often such holes in browsers occur, which combine symptoms of some types of DoS. These are joint DoS vulnerabilities, where simultaneously take place two DoS attacks. For example, freezing and resources consumption, or blocking and resources consumption. Also holes occur, which belong to type Resources consumption DoS, when takes place consumption of both resources (CPU and RAM).

In case of Crashing DoS, browser completely crashes (application closes), which can leads to loss of unsaved data.

In case of Blocking DoS, browser blocks (it not crashes). When freezing browser not responds to user actions and it’s not possible to continue work with it. When blocking browser not freezes, but work with it completely blocks. In both subspecies of these type of DoS vulnerabilities, work with browser becomes impossible and user forced to close it by himself.

In case of Resources consumption DoS, browser begins taking main resources of computer. It can be CPU resources, or RAM, or both resources simultaneously. In case of memory consumption effect from attack will come faster, but CPU consumption attacks more mean and dangerous. These DoS attacks lead to slowing down performance of user’s computer, i.e. affect on whole computer and all started applications. And user of browser forced to close it by himself.

DoS vulnerabilities in browsers are dangerous for users. Which I wrote about already in article Dangers of DoS attacks on browsers.

Класифікація DoS уразливостей в браузерах

22:48 18.10.2008

Проводячи в цьому році дослідження безпеки браузерів, особливо в останні два місяці (коли я провів проекти День багів в Google Chrome та День багів в браузерах), я створив власну класифікацію DoS уразливостей в браузерах. Серед різних браузерів часто доводиться стикатися з Denial of Service уразливостями і вони бувають різноманітними, з деякими характерними критеріями, які я й вирішив виділити в даній класифікації.

Всі ці уразливості відмови в обслуговуванні є DoS, але замість одного загального виду даного класу уразливостей тепер, при потребі, можна буде використати три види (для уточнення). Дані види DoS характерні для браузерів. Зазначу, що інші клієнтські додатки можуть мати всі або частину даних видів DoS уразливостей.

Denial of Service уразливості в браузерах бувають наступних видів:

1. Вибиваючі DoS (crashing DoS).

2. Блокуючі DoS (blocking DoS).

  • Зависання (freezing).
  • Блокування (blocking).

3. DoS через споживання ресурсів (resources consumption DoS).

  • Споживання ресурсів CPU (CPU overload).
  • Споживання ресурсів RAM (memory consumption).

Нерідко зустрічаються дірки в браузерах, які поєднують симптоми декількох видів DoS. Це комбіновані DoS уразливості, коли одначасно мають місце дві DoS атаки. Наприклад, зависання і споживання ресурсів, або блокування і споживання ресурсів. Також трапляються дірки, що відносяться до виду DoS через споживання ресурсів, коли відбувається споживання обох ресурсів (CPU і RAM).

У випадку Вибиваючих DoS, браузер повністю вибиває (додаток закривається), що може призвести до втрати незбережених даних.

У випадку Блокуючих DoS, браузер блокується (його не вибиває). При зависанні браузер не реагує на дії користувача і з ним не можна продовжити працювати. При блокуванні браузер не підвисає, але робота з ним повністю блокується. В обох підвидах даного виду DoS уразливостей, робота з браузером стає неможливою і користувач змушений сам закрити його.

У випадку DoS через споживання ресурсів, браузер починає забирати основні ресурси комп’ютера. Це можуть бути ресурси CPU, або RAM, або обидва ресурси одночасно. У випадку споживання ресурсів пам’яті ефект від атаки наступить швидше, але атаки споживання ресурсів процесора більш підлі й небезпечні. Дані DoS атаки призводять до зменшення швидкодії усього комп’ютера користувача, тобто впливають на весь комп’ютер і всі запущені додатки. І змушують користувача браузера самому закрити його.

DoS уразливості в браузерах є небезпечними для користувачів. Про що я вже писав в статті Небезпеки DoS атак на браузери.

Взломи державних сайтів України

22:48 17.10.2008

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

Безпека сайтів наших органів влади залишає бажати кращого, про що я неодноразово писав. Зокрема, в новинах я розповідав про знайдені мною уразливості на сайті Верховної Ради України, Кабінета Міністрів України, Президента України, kmv.gov.ua, kmr.gov.ua, www.sbu.gov.ua, www.szru.gov.ua, www.dcz.gov.ua, www.niisp.gov.ua, mail.kmv.gov.ua та www.bank.gov.ua. Деякі з виявлених мною уразливостей були виправлені (на деяких з наведених сайтів), але не всі. Часто окрім того, що дані структури самі не слідкують за безпекою, так ще й мої попередження про уразливості ігнорують.

В цілому ситуація з безпекою державних сайтів в Україні не визиває позитивних емоцій і знаходиться на низькому рівні. Нашим спецслужбам, зокрема СБУ, варто потурбуватися про покращення рівня захищенності державних сайтів - як своїх власних, так і в цілому всіх державних сайтів. Що зараз ними робиться незадовільно і цю ситуацію варто покращувати.

Серед виявлених мною взломів державних сайтів є наступні:

  • http://if.gov.ua (хакерами з byond hackers team) - був похаканий 01.03.2006, по даним redtram.com.
  • http://www.mvk.if.ua (хакером DumansaL) - був похаканий 25.08.2008, про що я писав нещодавно.

Враховуючи наведені приклади, а також ту інформацію про взломи державних сайтів, що мені розповідали користувачі сайту, можна впевнено стверджувати, що державні сайти України періодично взламують. Хоча й лише рідкі випадки випливають у вільний доступ. Дана ситуація зі вломами gov-сайтів, пов’язана з недостатнім рівнем їх безпеки. Кожна країна в світі повинна слідкувати за безпекою власних державних сайтів, чого я бажаю й Україні.