информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаГде водятся OGRыСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hacking
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
MZMA Chat ver. 2.0 Vulnarables 14.11.03 01:34  Число просмотров: 1227
Автор: Ilich Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Загрузка начинается с файла enter.html, в котором следует ввести имя пользователя, в качестве которого вы собираетесь войти в чат.Эти данные качестве параметра передается переменная $U скрипта index.php, в которой содержится имя пользователя, под которым кто-то собирается войти в чат. Глобальной переменной $USERNAME присваивается значение $U, которое таже сохраняется в кукисах для дальнейшего использования. если не получается зарегистрироваться, то запускается скрипт login.php, в котором следует повторить регистрацию, а если все нормул, то запускается username.php, в котором проверяется, есть ли пользователь с таким ником, как содержится в переменной $USERNAME, в чате. Если есть, то облом, однако, получается, нас просят перерегистрироваться(login.php), а если нет, то впускают в чат. Проверка производится по времени последней сказанной фразы в чате, т.е если кто-то с таким же ником, как и у тебя сказал в последнюю минуту какую-нить фразу, то тебя с таким ником в чат не пустят. Если этот чел нифига не скажт в течение двух минут, то можешь спокойно логинитья в чат.

После прохождения регистрации загружается несколько фреймов: фрейм, шде отображаются фразы(messages.php), фрем, в котором надо вводить слова (input.php), а также фреймы со списчком пользователей, которые щас в чате(users.php), и ссылками на сайты автора сего творения. Когда собираешься уходить из чата, следует выпонить скрипт exit.php/

Ну вот, вроде с принципом действия чата разобрались. Теперь перейдем, как говортся, ближе к телу, т.е. багу.
в данном чате не обошлось без XSS (по моему, это в данный момент самый распространенныйбаг в Web-приложениях. ну не могут разработчики нормально филььтровать даные, что уж тут поделаешь, а хотя может и не хотят ...) Короче, если в качестве переменной, содержащей имя пользователя, передать какой-нить хтмловский код, то он будет выполнен, так как входные данные в скрипте index.php не фильтруются, а переменная $USERNAME используется в качестве глобальной переменной. Код будет выполнен при запуске скрипта users.php (нет фильтрации имени пользователя) Так же в скрипте users.php инфа по пользователю (читай HTML или JavaScript код) записывается в базу данных, поэтому, при запуске messages.php, он таке бдет выполнен. Единственной, что плохо при использовании XSS-нападения - это то, что код, который выполнится на тачках других пользователей чата запустится и в твоем броузере. Единственный скрипт, в котором не работае XSS - input.php. В нем фильтруются все данные, переданные этому скриту методом пост. Кстати получается стандартная для html-чатов ситуация: данные, которые водит юзер, при отсылке нового сообщения, фильтруются, а остальные данные просто пропускаются без разбора.

Кстати, абсолютно безграмотно организовано ограничение длинны ника юзера. Просто посмотри на следующий код формы:
<input type="text" maxlength=20 name="U">
А теперь подумай, что будет, если вместо 20 поставить 1000000 и вдолбать эти данные в форму (например, с помощью скрипта). А можно вообще послать 1000000-символьный ник скрипту index.php напрямую.

Следующая атака, которая может быть проведена на данный чат - SQL Injection Attack. Если по-русски, то выполнение любых, ну, или почти любых комманд в базе данных, при помощи которой функционирует чат. Снова все это происходит из=за того, что данные, передаваемые скриптам, не фильтруются должным образим. Ниже я приведу инструкции SQL-запросов и имена скриптов, в которых они содержутся. Дальше, я думаю, ты сам решишь, сто с ними делать. Кстати, запросы, в которых не используются переенные, передаваемые скрипту из внешнего мира, я не привожу.

users.php:
----------
$sql="select id from chat_user where name='$USERNAME'";
$sql="insert into chat_user (id,name,time) values(null,'$USERNAME',".time().")";
$sql="insert into chat_message (id,body,time) values(null,'рПМШЪПЧБФЕМШ <A HREF=\"messages.php\"onClick=\"userClick(''$USERNAME'');\">$USERNAME</a>ЧПЫЈМ Ч ЮБФ...',".time().")";
$sql="update chat_user set time = ".time()." where name='$USERNAME'";
$sql="select name from chat_user where name != '$USERNAME'";

username.php:
-------------
$sql="select time from chat_user where name='$USERNAME'";

input.php (фильтруется XSS):
------------------------------
$sql="insert into chat_message (id,name,body,time) values(null,'$USERNAME','$m',".time().")";

exit.php:
------------
$sql="delete from chat_user where name='$USERNAME'"; - А это вообще улетный скрипт. Короче, как ты нверно уже понял, если передать в качестве переменной $USERNAME имя какого-нить лвого пользователя, то можно его выкинуть из чата !!! Ну как, не терпится попробовать себя в качестве шерифа, слдящего за порядком в чате ;-))) А можно вообще устроить резню в чате ;-)))

Да, еще в этом web-приложении нет защиты от флуда (по-моему, нормальную защиту от флуда реализовать вообще фактически невозможно), поэтому можно флудить чат различного рода дурью, используя обычный лементарный скрипт, который передает данные input.php при помощи метода post.


<hacking> Поиск 
  • MZMA Chat ver. 2.0 Vulnarables - Ilich 14.11.03 01:34 [1227]






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach