Чаты Мелкие уязвимости Чата бородина.

Discussion in 'Веб-уязвимости' started by KIR@PRO, 13 Apr 2009.

  1. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    Чат бородина - уязвимости (мелкие)

    №1 для кого пишется? и другое что стоит сказать
    для всех кому интересно, но кто не мог сам этого найти.
    не надейтесь увидеть Здесь нечто типа php/sql-inject!
    Здесь скорее уязвимости для того чтоб приколоться над злыми админами или своими друзьями... ;)


    №2 степень опасности
    низкая...


    итак поехали... раскрытие пути
    имя скрипта:help.php (доступен всем и присутвует практически везде где есть сам чат)

    вот уязвимый кусок кода
    PHP:
    .....

    if (!isset(
    $help)) $help=0;
       
    $help+=0;

    switch (
    $help) {

    case 
    1:

    .....
    как известно switch не работает с массивами ... а тип переменной $help ни где не проверяется.
    По этому нам всего лишь стоит обратится к скрипту с параметром ?help[]=1
    как скрипт тутже выдаст нам ошибку ...
    Как пример этой уязвимости подвержен официальный сайт чата _http://chat.php.spb.ru/
    http://chat.php.spb.ru/www/help.php?help[]=1

    p.s. думаю каждый из нас знает что нам может дать раскрытие пути... здесь мы видим что на
    официальном сайте чата стоит Windows хз какой??? Вероятнее всего Server 2003/2008
    (логичнее было поставить его, но то что там работает apache а не iis немного толкает
    на мысль что там может мыть и XP)) , и видим что это не хостинг =)
    ... ну еще как вариант это может быть vps/vds



    Флуд
    Как известно в чате есть защита от флуда/мата.
    он реагирует на повторение более 4 раз (зависит менял ли настройки админ) одного и тогоже символа...
    но тут мы получаем возможность флуда, повторяя не один символ а два и более разных символов типа:
    так же и повторяя слова и другое....
    количество вводимых знаков ограничено 1001 символом, но кому надо тот
    решит эту проблемму.

    Идем далее pXSS

    Не надейтесь что это xss в самом чате =( к сожалению все ксс которые только можно было найти, нашли и залатали.
    уязвимость присутствует в модуле рейтинга пользователей.
    скачать модуль: http://nik-chat.net/downloads/top.rar
    Уязвимые параметры c3, top_title, top_td_title (дополнено)
    Вообще C3 не фильтруется ни при одном из зарание заданных c2.

    Важно будет сказать: не забывайте что это xss работает только если пользователь
    переходящий по ссылке находится в чате (в браузере есть активные куки чата) в противном
    случае данные фильтруются и пересылаются пост запросом... вот...)

    обычно скрипт top.php находится в папке с самим чатом но некоторые
    админы могут его и перенести в какое либо другое место =)

    №4 END.
    ну вот вобщем то и все) пользуйтесь но не злоупотребляйте....

    все материалы выложены исключительно для ознакомления! (так надо :D);

    © KIR@PRO + Спец для Antichat.ru
    дополнено 14.04.2009
     
    _________________________
    #1 KIR@PRO, 13 Apr 2009
    Last edited: 15 Apr 2009
    1 person likes this.
  2. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    заплатка от xss:
    ищем код (у меня 54 строчка):
    PHP:
     case "topshow":

              include_once(
    skn("__skin1.php"));
              include_once(
    "__other.php");
    после неё вписываем:
    PHP:
    $top_title='';
    $top_td_title='';
    $c3=(integer)$c3;
    if (!(
    $c3==10 || $c3==50 || $c3==100))$c3=10;  //запретим пользователям вывод произвольного кол-ва результатов, иначе при $c3=-1 выведется вся база

    заплатка для help.php
    ищем строчку:
    PHP:
    if (!isset($help)) $help=0;
       
    $help+=0;

    switch (
    $help) {
    заменяем на:
    PHP:
    if (!isset($help) || !is_numeric($help)) $help=1;//если просто откроют страницу без параметров или $help имеет не числовое значение, то "ошибочный индекс" не будет выведено.
       
    $help+=0;

    switch ((integer)
    $help) {
     
    _________________________
    #2 KIR@PRO, 14 Apr 2009
    Last edited: 22 Apr 2009
    1 person likes this.
  3. profile

    profile New Member

    Joined:
    18 Feb 2009
    Messages:
    22
    Likes Received:
    0
    Reputations:
    -1
    про флуд чтота я не понял. в таких чатах стоит ограничение по весу сообщения. два таких сообщения как ты написал и бан ... или я что-то неправильно понял?
     
  4. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    Дополнение. Раскрытие пути.
    Уязвимые скрипты:
    все....

    Условия выполнения:
    Отсутсвие в браузере cookie чата... для просмотра результата рекомендуется использовать спецпроги типа AccessDriver

    Ближе к делу. Эксплуатация уязвимости:
    обращаемся к любому существующему скрипту который подключает файл __main.php или __dima.php... как пример файл index.php
    обращаемся к файлу с параметром: ?s[nick]=

    как пример офф сайт: шттп://chat.php.spb.ru/www/index.php?s[nick]=


    все уязвимости присутствуют во всех версиях (если кто то найдет версию где нет отпишите в ПМ изправлю)....



    © KIR@PRO + Спец для Antichat.ru
     
    _________________________
    #4 KIR@PRO, 22 Apr 2009
    Last edited: 22 Apr 2009
  5. Win64

    Win64 New Member

    Joined:
    4 Jan 2009
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    А что дает раскрытие пути, для чего оно?
     
  6. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    2Win64
    само по себе раскрытие пути дает мало результатов:
    1) мы узнаем какая OC стоит на сервере.. для тех кто непонял поясню. Если мы видим путь как в первом посте на офф сайте
    C:\Inetpub\site\cpsr\www\www\help.php on line 12
    то мы видим что здесь стоит Windows и стоит копать в эту сторону, если же мы видим что то такое:
    /var/www/chat/.... или /usr/....
    то понимаем что на сервере стоит Linux

    2) если мы нашли php-include на сайте или sql-inject с возможностью заливки файлов то раскрытие пути нам поможет....)




    2profile
    в чате стоит ограничение на повторение одного символа несколько раз (украшение из символов)... бывает даже 5-6 повторяющихся символов и уже бан.... еще есть бан за определённое колличество килобайт за какойто проежуток времени (типо 1096 Кбайт за 10 секунд = бан) ... первое мы можем обойти так:
    за 2 повторяющихся символа чат не банит, тоесть за /*/*/*/*/*/*/*/*/*/* бан не получим(разве что от модеров или киллеров) но это не красиво...
    Тогда вспомним видео от Silveran в котором он расказывал про "невидимый" символ. Символ существует но браузеры его не отображают, символ имеет код AD в блокноте он отображается как "-", но - имеет код 2D. Чередуем этот символ с любым другим и получяем на выходе повторение только одного символа(визуально, то что нам и нужно)
    пример:
     
    _________________________
    #6 KIR@PRO, 28 Apr 2009
    Last edited: 28 Apr 2009
  7. Win64

    Win64 New Member

    Joined:
    4 Jan 2009
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Эх, как я далёк от всего этого :)
     
  8. Win64

    Win64 New Member

    Joined:
    4 Jan 2009
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    А как можно обойти защиту от флуда, чтобы не банили за много фраз за короткое время?