Иллюстрированный самоучитель по защите в Интернет

Переполнение буфера

Изъян переполнения полей

У читателя может возникнуть вопрос, "Действительно ли можно взломать Web-сервер, пользуясь только Web-браузером?" На этот вопрос можно ответить вполне определенно: "ДА". Программисты в Web в первую очередь заботятся о производительности, отодвигая вопросы безопасности на второй план. Лучше всего это видно на примере ошибки, возникающей при переполнении буфера на сервере Cold Fusion, которая была обнаружена группой Foundstone. Проблема заключается в том, каким образом компания Allaire реализовала проверку достоверности входных данных, которые вводятся в поле пароля администратора. Пользуясь недостаточно полной очисткой этого поля, взломщик с помощью одного браузера может практически полностью вывести Web-сервер из строя. Вот как это можно сделать.

  1. Введите в браузере адрес страницы регистрации администратора в системе на типичном сервере Cold Fusion:
  2. С помощью соответствующей команды (в браузере Netscape – это File › Edit Page) перейдите в режим редактирования кода HTML.
  3. Дважды щелкните на дескрипторе ACTION (верхний левый) и измените его, вставив имя/адрес URL сервера:
    <form
    Action="http://192.168.51.101/CFIDE/administrator/index.cfm"
    Method="POST">
    
  4. Измените дескриптор HTML с именем PasswordProvided, который содержит пароль, а затем измените свойства size и MAXLENGTH:
    <input Name="PasswordProvided"
    Type="PASSWORD"
    Size="1000000" MAXLENGTH="1000000">
    
  5. Щелкните на кнопке Preview, расположенной на панели инструментов Netscape, и сохраните этот файл в формате HTML.
  6. Поле ввода пароля теперь должно расшириться вправо и выйти за границы экрана. Сгенерируйте около 1.000.000 символов и скопируйте их в это поле.
  7. Щелкните на кнопке Password. Если все прошло хорошо (или плохо, если вы являетесь системным администратором), то можно будет увидеть следующее:

    Иллюстрированный самоучитель по защите в Интернет › Уязвимость в WEB › Переполнение буфера

На приведенном рисунке можно увидеть, что выполненные выше действия привели к подъему использования процессора сервера до 100%. Если подобные запросы продолжают поступать то, в конце концов, произойдет переполнение памяти. Более того, если на сервер отправить больше миллиарда символов, это окончательно выведет его из строя. В любом случае, для выяснения причины сбоя придется перезагружать систему.

Контрмеры

Единственным эффективным решением проблемы подобного рода является использование в каждой разрабатываемой программе процедуры очистки входных данных. В рассмотренном случае можно переместить страницу администратора в какой-то другой каталог или выполнить рекомендации по обеспечению безопасности сервера Cold Fusion, которые можно найти по адресу http://www.allaire.com/Handlers/index.cfm?ID=10954&Method=Full.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.