Вход/Регистрация
19 смертных грехов, угрожающих безопасности программ
вернуться

Виега Джон

Шрифт:

Выявление ошибки на этапе анализа кода

Чтобы обнаружить загадочные URL, просмотрите весь серверный код Web–приложения и выпишите точки входа, через которые данные поступают из сети. Ищите следующие конструкции:

Для скрытых полей форм задача несколько проще. Ищите в коде места, где клиенту посылается HTML–код, содержащий строку вида:

...

type=HIDDEN

Напомним, что слово hidden может быть заключено в одинарные или двойные кавычки. Такой текст можно найти с помощью следующего регулярного выражения, которое написано на С#, но легко переносится на другие языки:

...

Regex r = new Regex(«type\\s*=\\s*[\'\»]?hidden[\'\"]?",

Regex.Options.IgnoreCase);

bool isHidden = r.IsMatch(stringToTest);

На Perl это выглядит так:

...

my $hidden = /type\s*=\s*[\'\"]?hidden[\'\"]?/i;

Для каждого найденного скрытого поля задайтесь вопросом, почему оно скрыто и что случится, если злоумышленник изменит его значение.

Тестирование

Самый лучший способ найти подобные ошибки – подвергнуть код анализу, но на случай, если это невозможно или вы что–нибудь пропустили, можно выполнить некоторые тесты. Например, такие инструменты, как TamperlE (www.bayden.com/ Other), Web Developer (www.chrispederick.com/work/firefox/ webdeveloper) или Paessler Site Inspector (www.paessler.com), показывают исходный текст форм прямо в окне браузера. Они же позволяют модифицировать поля формы и отправлять их обратно серверу. На рис. 9.1 показано, как выглядит окно Paessler Site Inspector.

Рис. 9.1 . Программа Paessler Site Inspector показывает текст форм на Web–странице

Примеры из реальной жизни

Следующие примеры взяты из базы данных CVE .

CAN–2000–1001

Web–страница add_2_basket.asp в программе Element InstantShop позволяет противнику модифицировать информацию о цене, которая находится в скрытом поле «price».

Исходный текст формы выглядит следующим образом:

<INPOT TYPE = HIDDEN NAME = «id» VALUE = «AOTO0034»>

<INPOT TYPE = HIDDEN NAME = «product» VALUE = «BMW545»>

<INPUT TYPE = HIDDEN NAME = «name» VALUE = «Дорогая машина»>

<INPUT TYPE = HIDDEN NAME = «price» VALUE = «100»>

Вы можете записать в поле price (цена) любое значение, отправить форму на сайт, где установлена программа Element InstantShop, и получить очень дорогую машину всего за 100 долл. Правда, придется оплатить расходы по доставке.

Модификация скрытого поля формы в программе MaxWebPortal

Этой ошибке в CVE не присвоен номер, но она фигурирует также в базе OSVDB (www.osvdb.org) под номером 4933.

MaxWebPortal – это Web–портал и система организации онлайновых сообществ. Для решения большинства административных задач используются скрытые поля. Это позволяет злоумышленнику проанализировать код HTML–страниц, изменить значения в скрытых полях и потенциально получить доступ к функциям, предназначенным только для администраторов.

Например, можно записать в скрытое поле news значение 1. Тогда сообщение будет помещено на первую страницу в качестве новости!

Или можно параметру allmem (все члены) присвоить значение true. Тогда все члены сообщества получат почтовое сообщение. Таким образом можно завалить пользователей системы спамом.

Искупление греха

Анализируя угрозы, исходящие от загадочных URL и скрытых полей формы, а также возможные контрмеры, рассматривайте следующие варианты:

□ противник просматривает данные;

□ противник воспроизводит данные;

□ противник предсказывает данные;

□ противник изменяет данные.

Противник просматривает данные

Это представляет собой угрозу, только если данные конфиденциальны, например речь идет о пароле или идентификаторе, позволяющем войти в систему. Любая персональная информация также должна приниматься во внимание. Исправить ситуацию поможет использование протоколов Secure Socket Layers (SSL),

  • Читать дальше
  • 1
  • ...
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: