Security Lab

Удаленное выполнение команд в Apache Web server

Дата публикации:22.03.2002
Всего просмотров:2605
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание:

Из-за пути, которым Apache Web сервер обрабатывает DOS сценарии, возможно выполнить удаленные команды на Web сервере, используя символ ('|').
Когда запрос о пакетном DOS файле (.bat или .cmd) послан Apache Web серверу, сервер будет вызывать интерпретатора оболочки (cmd.exe по умолчанию) и выполнит сценарий с параметрами, посланными пользователем. Поскольку надлежащая проверка правильности не сделана на вводе, возможно послать символ ( '|') с командами, добавленными в конец к этому запросы, и сервер их выполнит.
В заданной по умолчанию инсталляции Apache 2.0.x поставляется с сценарием /cgi-bin/test-cgi.bat, который также подвержен этой уязвимости. Должно быть отмечено, что любой '.bat ' или '.cmd ' сценарий позволит эксплуатацию этой уязвимости.

Пример:
1. http://TARGET/cgi-bin/test-cgi.bat?|copy+..\conf\httpd.conf+..\htdocs\httpd.conf
Этот запрос копирует файл httpd.conf, в корень Web сервера, где он может рассматриваться любым пользователем.
2. http://TARGET/cgi-bin/test-cgi.bat?|echo+Foobar+>>+..\htdocs\index.html
- добавит в конец строку "Foobar" к index.html файлу, постоянно находящемуся в корне Web сервера.
3. http://TARGET/cgi-bin/test-cgi.bat?|dir+c:+>..\htdocs\dir.txt
- создаст файл, содержащий листинг диска C:, и поместит файл в корень Web сервера, где любой пользователь cможет его прочитать.

Примечание:
1) Url-Decoding не предусмотрен Apache, если бы не '+' символ, который заменяет пробел.

2) Прямой вывод в STDOUT наиболее вероятно приведет к сообщению об ошибке. Поэтому чтобы просматривать результат команды, рекомендуется, чтобы вы переадресовали вывод к файлу в корень Web сервера
 

Уязвимость найдена в Apache WIN32 до версии 1.3.23, и Apache WIN32 до 2.0.28-BETA

Ссылки: Источник