PDA

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


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


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


итак поехали... раскрытие пути
имя скрипта:help.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
<<< вернуться назад | на главную страницу


Fatal error: Unsupported operand types in C:\Inetpub\site\cpsr\www\www\help.php on line 12


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



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

[13:48] <KIR@PRO> %87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87 %87%87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87%8 7%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87%87%8 7%%87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87% 87%87%87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87 %87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87%87 %87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%8 7%87%87%87%%87%87%87%87%87%87%%87%87%87%87%87%87%% 87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87% 87%87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87%87 %87%87%87%87%%87%87%87%87%87%87%%87%87%87%87%87%87 %%87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%8 7%87%87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87% 87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87%87% 87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87 %87%87%87%%87%87%87%87%87%87%%87%87%87%87%87%87%%8 7%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87%8 7%87%%87%87%87%87%87%87%%87%87%87%87%87%87%%87%87% 87%87%87%87%%87%87%87%87%87%87%%87%87%87%87%87%87% %87%87%87%87%87%87%%87%87%87%87%87%87%%87%87%87%87


так же и повторяя слова и другое....
количество вводимых знаков ограничено 1001 символом, но кому надо тот
решит эту проблемму.

Идем далее pXSS

Не надейтесь что это xss в самом чате =( к сожалению все ксс которые только можно было найти, нашли и залатали.
уязвимость присутствует в модуле рейтинга пользователей.
скачать модуль: http://nik-chat.net/downloads/top.rar
Уязвимые параметры c3, top_title, top_td_title (дополнено)
top.php?c=topshow&c2=priv&c3={XSS} // если не хотите выводить ничего то перед XSS поставте 0 - небудет выведено ни одной записи
top.php?c=topshow&top_title={XSS_1}&top_td_title={XSS_2}

Вообще C3 не фильтруется ни при одном из зарание заданных c2.

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

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

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

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

© KIR@PRO + Спец для Antichat.ru
дополнено 14.04.2009

KIR@PRO
14.04.2009, 11:43
заплатка от xss:
ищем код (у меня 54 строчка):
case "topshow":

include_once(skn("__skin1.php"));
include_once("__other.php");

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


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

switch ($help) {

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

switch ((integer)$help) {

profile
22.04.2009, 18:42
про флуд чтота я не понял. в таких чатах стоит ограничение по весу сообщения. два таких сообщения как ты написал и бан ... или я что-то неправильно понял?

KIR@PRO
22.04.2009, 20:07
Дополнение. Раскрытие пути.
Уязвимые скрипты:
все....

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

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

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


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



© KIR@PRO + Спец для Antichat.ru

Win64
27.04.2009, 22:37
А что дает раскрытие пути, для чего оно?

KIR@PRO
28.04.2009, 17:20
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. Чередуем этот символ с любым другим и получяем на выходе повторение только одного символа(визуально, то что нам и нужно)
пример:
текст в блокноте будет нам виден так:
-<-<-<-<-<-<-<-<-<-<ПРИВЕТ ВСЕМ->->->->->->->->->->
текст в HEX:
AD3CAD3CAD3CAD3CAD3CAD3CAD3CAD3CAD3CAD3CCFD0C8C2C5 D220C2D1C5CCAD3EAD3EAD3EAD3EAD3EAD3EAD3EAD3EAD3EAD 3E

вставляем в чате и отправляем, все увидят:
<<<<<<<<<<ПРИВЕТ ВСЕМ>>>>>>>>>>

при этом мы не получим бан от самого чата...

Внимание! не пробуйте копировать пример текста, в нем "невидимый" символ заменен на дефис чтоб вы его смогли увидеть... если уж на то пошло скопируйте HEX значения и вставте их в hex Редакторе.

Win64
19.06.2009, 18:25
Эх, как я далёк от всего этого :)

Win64
19.06.2009, 18:46
А как можно обойти защиту от флуда, чтобы не банили за много фраз за короткое время?