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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
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-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach