информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hacking
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Web Wiz Guide ASP Weekly Poll v2.10 beta Security vulnerables. 22.10.03 21:46  
Автор: Ilich Статус: Незарегистрированный пользователь
<"чистая" ссылка>
=====================================================
Web Wiz Guide ASP Weekly Poll v2.10 beta Security vulnerables.
=====================================================

В этот раз мне попался скрипт Брюса Корхила(Bruce Corkhill). Он разработал систему голосования, которая использут базу данных Access 2000. Сама система опроса посетителей сайта написана на ASP. Как обычно, в системе голосования не обошлось без ошибок. Для начала я перечислю все файлы, включенные в данную систему, а потом разберу уязвимости каждого файла в отдельности.
Итак, к состав данной программы входят следующие скрипты:
------------------------------------------------------------------
+ add_new_weekly_poll.asp (администраторсуий скрипт, который позваляет добавлять новую тему голосования)
+ previous_weekly_polls.asp (показывает предыдущие вопросы голосования)
+ weekly_poll.asp (крипт, который обрабатывает данные, полученые от пользователя, то есть он занимается тем, что записывает данные в базу даннх и выводит информацию из нее)
+ default.asp (основной загрузочный скрипт, который занимается тем, что загружает модуль weekly_poll.inc; т.к. он больше ничего полезного не делает, то и багов в нем нема :-( )
+ weekly_poll.inc (это, модуль, в котором реализуется форма для прелоставления пользователю права голоса. После того, как пользователдь подтвердит свой выбор, данные передаются при помощи метода POST в weekly_poll.asp, для последующего сохранения.)
+ admin.htm (web-форма, в которой реализуется интерфейс для добавления нового вопроса для опроса в систему: данные при помощи метода post передаются на вход add_new_weekly_poll.asp)
+ weekly_poll.mdb (бвзв данных в формате Access 2000, в которй содержутся данные по опросу)

Теперь в двух словах расскажу о том, как работает данная система. При загрузке программы отображается форма с вариантами ответов. Как только пользователь подтвердит свой выбор, информация о его выборе заносится в кукисы (это типа чтобы от накрутки систему защитить: чтобы один пользователь мог только один раз проголосовать), потом она оттуда извлекается и инфа заносится в базу данных. Вся работа идет с помощью метода post для того, чтобы пользователь не видел информацию, которую он передает и чтобы "усложнить2 хак. Кстати говоря, в одном документе по web-кодингу так и было написано, что для защиты своего web-приложения от хакера достаточно использовать метод post вместо get, и тогда его никто не сломает ;-))) Мне кажется, что автор тоже читал эту доку, так как его система опроса отличается довольно большой глюкавостью. Человек как обычно понадеелся на авсь: а может н хакнут ... ;-)))
Ладно, хватит рассуждений, перехожу к конкретному описанию багов, найденных мною в данном web-приложении. Из всего этого набора скриптов самым бажным является add_new_weekly_poll.asp. Это как всегда XSS, но уже с добавлением тегов в поля базы данных. Т.К. данные при загрузке программы берутся из базы данных и никак не проверяются, то добавив вместо обычного текста теги можно заюзать HTML. Для выполнения XSS можно воспользоваться admin.htm.
Теперь о системе хащиты от накруток. Она строится на том, что в кукисы пользователя об ответе и дате ответа. Затем, при последуйщем голосовании этва информация проверяется и если программа находит информацию о том, чо по данному вопросу юзер уже голосовал, его новый голос не учитывается. Это лечится очень просто - просто надо выкинуть информацию о предыдущем посещении сацта из кукисов и все, можно голосовать заново, ну или можно подправить так называемый номер опроса. Если по русски, то надо изменить то число, которое будет записано в ваши кукисы на какое-нить произвольное.
Кстати, переменные не проверяются на длину (это относится абсолютно ко всем переменным, которые передаются всем без исключения скриптам данного приложения), поэтому можно попытаться выполнить переполнение буфера и заДоСить приложение.
Получается, что как обычно встречаемся с самыми распространенными ошибками web-програмирования - данные, которые поступают на вход скрипта нифига не проверяются. Хотя, если бы не администраторский скрипт, то XSS'а можно было бы избежать, так как в других скориптах все данные, которые заносятся в базу данных преобразовываются в целые числа.


1




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


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