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

SQL DB Structure Extraction vulnerabilities

22:42 16.03.2010

This is English version of my SQL DB Structure Extraction vulnerabilities article.

There is such variety of Information Leakage vulnerabilities as SQL DB Structure Extraction. This vulnerability lie in that there is information leakage in web application about structure of the database. This information leakage can be of use at SQL Injection attack.

Such vulnerability I found first time already in 2006 (at one site) and gave it this name. Such vulnerabilities I found at many web sites, particularly at bizua.com.ua, zoom.cnews.ru and job.ukr.net. And also in many web applications, particularly in WordPress (many times), W-Agora, Nucleus, Athree CMS (twice) and Abton.

Example of information leakage which occurs at using of one from SQL DB Structure Extraction vulnerabilities in 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

In this case important information it is name of table (wp_posts), particularly its prefix (wp), which is using in other tables of WP at vulnerable site.

What is the difference between SQL DB Structure Extraction and SQL Error? Because in both cases there is a message about error at request to database.

There are different messages about error in SQL query (SQL Error):

1. Only a message is showing about error at request to DB without any details. Sometimes at that there can be a message about a script, in which error occurs, including there can be mentioned full path to it at the server, which is Full path disclosure vulnerability. And in other cases there can be no details, only mentioning about error at request to DB.

2. A message is showing about error at request to DB and part of SQL query, in which there is error. In this case, usually, there is no leaked information about structure of DB. But in such cases it’s possible the conduction of XSS attacks via errors at requests to DB.

3. A message is showing about error at request to DB with detailed information about current SQL query (or several queries). When information about structure of DB is leaked - about tables and their fields in DBMS. And this variant is SQL DB Structure Extraction.

So SQL DB Structure Extraction vulnerability - it’s such variant of SQL Error, when error at request to database occurs and at the page (at notification about error at request to DB, or even without such notification) the information about structure of DB is showing.

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, коли відбувається помилка при запиті до бази даних і на сторінці (при повідомленні про помилку при запиті до БД, або навіть без даного повідомлення) виводиться інформація про структуру БД.

Підбір паролів до FTP

19:16 12.03.2010

Продовжуючи розпочату традицію, після попереднього відео про взлом Java додатків, пропоную новий відео секюріті мануал. Цього разу відео про підбір паролів до FTP. Рекомендую подивитися всім хто цікавиться цією темою.

Brute Force FTP Escalation

В даному відео ролику демонструється Brute Force атака на FTP. Після підбору паролю до FTP сервера на Windows XP, отримується telnet доступ до системи. А потім й доступ через RealVNC з захопленням акаунту адміністратора. Рекомендую подивитися дане відео для розуміння атак через FTP.

Розповсюдження шкідливого ПЗ через TinyURL

22:42 06.03.2010

Про можливі атаки через редиректори, в тому числі сервіси редирекції, я писав в свої статтях Редиректори: прихована загроза та Атаки через закриті редиректори. Зокрема я наголошував на можливості розповсюдження шкідливого ПЗ через редиректори.

Також я писав про уразливості на багатьох сервісах редирекції, зокрема про уразливості на tinyurl.com. І я зокрема писав про можливість розповсюдження шкідливого коду саме через сервіс TinyURL. Атаки на користувачів можуть відбуватися як через редирекцію на зловмисні сайти, так і через поширення шкідливого коду безпосередньо через уразливості на сервісах редирекції. Але на всі мої попередження власники даних сервісів не звертали уваги.

І нещодавно, 03.03.2010, я виявив, що tinyurl.com почав активно використовуватися для поширення malware. Тому що Гугл виявив інфекцію на даному сайті, зокрема в його редиректорах (подібне використання tinyurl.com могло бути й раніше, але лише нещодавно я це виявив).

Це добре, що Google почав перевіряти на інфікованість і сервіси редирекції. Зокрема на tinyurl.com Гугл виявив 363 редиректори, з яких на 112 була виявлена підозріла активність за останні 90 днів. Частина сайта tinyurl.com була внесена до переліку сайтів із підозрілою активністю 7 разів протягом останніх 90 днів і за цей час tinyurl.com був посередником зараження 52 сайтів.

Що цікаво, TinyURL почали звертати увагу на використання їхнього сервісу для атаки на користувачів, і почали попереджати про можливість небезпеки при редирекції через них на деякі URL (потенційно вони можуть співробітничати з тим же Гуглом). Вони виводять сторінку “Warning - this URL may be harmful” з повідомленням про небезпеку даної адреси і пропонують користувачеві, якщо він бажає, самому перейти по лінці.

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

Витік інформації про версію системи №3

19:38 05.03.2010

Продовжу тему витоку інформації про версію системи. Як я зазначав, виведення версії системи - це поширена функція у веб додатках та веб системах. Багато різних движків виводять інформацію про версію системи і дана можливість движків є уразливістю. Це витік інформації (Information Leakage) про версію системи, що може бути використаний для атаки на сайти, що використовують даний движок.

Наведу нові приклади Information Leakage уразливостей в різних веб додатках, що приводять до витоку інформації про версію системи.

Mambo

В Mambo є декілька витоків інформації:

  • На сторінці адмінки http://site/administrator/ виводиться (у вигляді зображення) версія системи (4.5.2).
  • В фідах (http://site/index2.php?option=com_rss&feed=RSS0.91, http://site/index2.php?option=com_rss&feed=RSS1.0, http://site/index2.php?option=com_rss&feed=RSS2.0, http://site/index2.php?option=com_rss&feed=ATOM0.3) виводиться версія (Mambo 4.5.2).
  • В файлах /css/admin.css, /docs/Manual_Installation.html, /docs/Changelog.txt або /CHANGELOG (в різних версіях) та /sql/*.sql або /installation/sql/*.sql (в різних версіях).

MODx

В MODx є декілька витоків інформації:

  • На сторінці адмінки http://site/manager/ вказані роки копірайту “2005-2008″, з чого можна визначити приблизну версію системи.
  • В файлах /install/changelog.txt та /install/setup.sql.

phpAdsNew

В phpAdsNew є декілька витоків інформації:

  • В мета-тезі в адмінці виводиться версія системи (phpAdsNew 2.0.8).
  • В файлах /README та /misc/ChangeLog.

OpenAds

В OpenAds є декілька витоків інформації:

  • В мета-тезі в адмінці (http://site/www/admin/) виводиться версія системи (Openads v2.4).
  • В файлах /README.txt та /misc/ChangeLog.txt.

OpenX

В OpenX є декілька витоків інформації:

  • В мета-тезі в адмінці (http://site/www/admin/) виводиться версія системи (OpenX v2.8.3).
  • В файлах /README.txt, /RELEASE_NOTES.txt, /TRANSLATIONS.txt (неповна версія), /UPGRADE.txt (неповна версія) та /docs/KNOWN_ISSUES.txt (неповна версія).

Cross Site Scripting в DOM

19:41 27.02.2010

Окрім двох давно відомих класів Cross Site Scripting уразливостей - persistent та reflected (активний та пасивний) - є також третій клас XSS. Це Cross Site Scripting в DOM (DOM Based XSS). Про цей клас XSS (про всі три класи) я вже розповідав в своїй статті Подводные камни в интернет рекламе или чем опасен XSS, що була написана в грудні 2006 року і опублікована в лютому 2007 року в журналі Хакер Спец.

Даний клас уразливостей був виявлений Amit Klein. Свою статтю стосовно DOM Based XSS він вперше опублікував 04.07.2005. Ще з 2006 року я планув написати про цю статтю в себе на сайті і нарешті знайшов час для цього.

DOM Based Cross Site Scripting or XSS of the Third Kind

Також на www.securitylab.ru був опублікований переклад даної статті на російську мову.

Третий тип XSS: Межсайтовый скриптинг через DOM

Третій клас XSS відрізняється від перших двох класів і його особливості потрібно знати. До того ж XSS в DOM може бути як persistent, так і reflected. В даній статті детально описаний Cross Site Scripting в DOM клас уразливостей та проведене порявняння XSS в DOM зі звичайним XSS.

Взлом Java додатків

22:01 25.02.2010

Продовжуючи розпочату традицію, після попереднього відео про розміщення бекдору через phpMyAdmin, пропоную новий відео секюріті мануал. Цього разу відео про взлом Java додатків. Рекомендую подивитися всім хто цікавиться цією темою.

How to Hack Java JNLP Applications

В даному відео ролику демонструється методика взлому Java JNLP додатків (на прикладі Java-гри в шахи). Рекомендую подивитися дане відео для розуміння подібних атак.

Витік інформації про версію системи №2

22:48 22.02.2010

Продовжу тему витоку інформації про версію системи. Як я зазначав, виведення версії системи - це поширена функція у веб додатках та веб системах. Багато різних движків виводять інформацію про версію системи і дана можливість движків є уразливістю. Це витік інформації (Information Leakage) про версію системи, що може бути використаний для атаки на сайти, що використовують даний движок.

Наведу нові приклади Information Leakage уразливостей в різних веб додатках, що приводять до витоку інформації про версію системи.

Drupal

В Drupal версію системи можна дізнатися в файлі http://site/CHANGELOG.txt.

TYPO3

На всіх сторінках сайта на цьому движку в мета-тегах виводиться версія системи (TYPO3 4.0 CMS).

Joomla

В Joomla є декілька витоків інформації:

  • На всіх сторінках сайта на цьому движку в мета-тегах виводиться неповна версія системи (Joomla! 1.5 - тобто версія Joomla 1.5.x).
  • В файлі http://site/language/en-GB/en-GB.xml та інших xml-файлах локалізацій вказана версія движка, при останньому оновленні файла (<version>1.5.2</version> - тобто версія Joomla 1.5.2 і вище).

pMachine Pro

В pMachine Pro є декілька витоків інформації:

  • На сторінці адмінки pMachine Pro http://site/pm/ виводиться версія системи (pMachine Pro 2.4).
  • В файлі http://site/index.xml виводиться версія (pMachine 2.4).

ExpressionEngine

На сторінці адмінки ExpressionEngine http://site/system/ виводиться версія системи (ExpressionEngine 1.2.1).

Витік інформації про версію системи

22:41 20.02.2010

Виведення версії системи - це поширена функція у веб додатках та веб системах. Багато різних движків виводять (в різний спосіб) інформацію про версію системи і дана можливість движків є уразливістю. Це витік інформації (Information Leakage) про версію системи, що може бути використаний для атаки на сайти, що використовують даний движок.

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

Як я планував ще з 2008 року, наведу приклади Information Leakage уразливостей в різних веб додатках, що приводять до витоку інформації про версію системи (або серверного ПЗ).

WordPress

В WordPress є декілька витоків інформації про версію системи:

  • Майже на всіх сторінках сайта на цьому движку в meta-тегах виводиться інформація про версію (WordPress 2.6.2).
  • В RSS-фіді постів (http://site/?feed=rss, http://site/?feed=rss2, http://site/?feed=atom або http://site/?feed=rdf) виводиться версія (generator=”WordPress/2.6.2″ або v=2.6.2).
  • В RSS-фіді коментів (http://site/?feed=comments-rss, http://site/?feed=comments-rss2, http://site/?feed=comments-atom або http://site/?comments-rdf) виводиться версія (generator=”WordPress/2.6.2″ або v=2.6.2).
  • В RSS-фідах коментарів до постів (http://site/?feed=rss&p=1, http://site/?feed=rss2&p=1, http://site/?feed=atom&p=1, http://site/?feed=rdf&p=1 або http://site/1/feed/) виводиться версія (generator=”WordPress/2.6.2″ або v=2.6.2).
  • В файлі http://site/readme.html (Version 3.3.1).

Nucleus

В Nucleus є декілька витоків інформації:

  • На сторінці адмінки Nucleus http://site/nucleus/ виводиться версія системи (Nucleus CMS v3.24).
  • На всіх сторінках сайта на цьому движку видається серверний заголовок, в якому вказується версія системи (Generator: Nucleus CMS v3.24).

Power Phlogger

В Power Phlogger на кожній сторінці веб додатку в meta-тегах виводиться інформація про версію PHP, MySQL і веб сервера.

Також на кожній сторінці веб додатку виводиться його версія.

YaBook

В YaBook на кожній сторінці веб додатку в meta-тегах виводиться інформація про версію PHP, MySQL і веб сервера.

Також на кожній сторінці веб додатку виводиться його версія.

Pigalle

В Pigalle на кожній сторінці веб додатку в meta-тегах виводиться інформація про версію PHP, MySQL і веб сервера.

Також на кожній сторінці веб додатку виводиться його версія.

Нові методи атак в Інтернеті для заробітку грошей

23:32 18.02.2010

В своїй презентації Mo’ Money Mo’ Problems - Making even more money online the black hat way, що Jeremiah Grossman представив на конференції Black Hat в 2009 році, він розповів про нові методи атак в Інтернеті. Які можуть використовуватися для ще більшого заробітку коштів. Це сіквел (продовження) презентації Get Rich or Die Trying.