Визначення веб сервера Apache

22:44 27.11.2009

Ще 10.09.2006 я розробив методику визначення веб сервера Apache (fingerprinting). Дана методика базується на особливості Apache, яку я тоді, під час секюріті досліджень, виявив в себе на localhost (на Apache 1.3.23).

Особливість Apache.

Цікава особливість веб сервера Apache полягає в тому, що для доступу до файла, можна не вказувати його розширення. Як я нещодавно вияснив, ця особливість пов’язана з опцією MultiViews (якщо вона ввімкнена, що є по замовчуванню).

Тобто для доступу до файла robots.txt на сайті, можна зробити запит до файла robots.txt:

http://site/robots.txt

Або можна зробити запит до файла robots (без розширення):

http://site/robots

Тобто зробивши запит до файла без вказання його розширення, Апач виведе файл (який може мати довільне розширення на сервері) зробивши автодоповнення розширення.

При цьому це стосується лише тих розширень, які знає Апач. Тобто тих, MIME type яких відомий Апачу (що задається в налаштуваннях веб сервера, зокрема в mime.types). Порядок підстановки розширень також задається налаштуваннями веб сервера.

Наприклад, відповідно до налаштуваннь мого Apache, якщо на сервері розмістити test.html, test.txt і test.xml, то при запиті до файла test:

http://site/test

Виведеться зміст test.xml, тобто першим йде розширення xml. Наступним йде розширення html і потім вже розширення txt.

Визначення Apache.

Дану особливість можна використати для ідентифікації Apache.

Для цього потрібно виявити будь-який робочий файл на сервері, ім’я і розширення якого відомі. Наприклад, page.html. І потім послати два запити: http://site/page.html і http://site/page.

Якщо в обох випадках буде виведений зміст того ж самого файлу і, що є найбільш важливим, не буде помилки 404, значить цей веб сервер є Apache.

Пошук прихованої інформації.

Також дану особливість можна використати для пошуку прихованої інформації на сайтах. На яких дана особливість Apache призведе до витоку інформації.

Наприклад, якщо на сайті є файл secret.ext, розширення якого (ext) може бути складним (нестандартним), а може бути й стандартним. Для виявлення цього файлу не потібно вгадувати його повне ім’я (з розширенням), а достатньо буде вгадати лише ім’я без розширення. Що дозволить значно швидше виявити цей прихований файл.

http://site/secret

На власному досвіді під час секюріті аудиту доводилося використовувати дану особливість Апача для виявлення секретної інформації на сайті, адмін якого не сподівався, що хтось знайде цю інформацію.

Вразливі версії.

Дана особливість працює в Apache 1.x - перевірено в Apache 1.3.23 і Apache 1.3.37. Також вона працює в Apache 2.x, але мені не доводилося зустрічати подібні сайти на Apache 2.x. Так що всі версії Apache з ввімкненим MultiViews мають дану особливість.

Наприклад, Гугл також не використовує розширення у деяких скриптів на своїх сайтах - http://www.google.com/search - але в них сервер GWS і це в них таке ім’я задане для веб додатка. Окрім Apache мені не доводилося зустрічати інших веб серверів з подібною особливістю.


3 відповідей на “Визначення веб сервера Apache”

  1. Vyacheslav каже:

    А ще можна прочитати RTFM від апача,який пояснює логіку. Кривонастроєний сервер - проблеми адміністратора.

    Multiviews
    MultiViews is a per-directory option, meaning it can be set with an Options directive within a , or section in access.conf, or (if AllowOverride is properly set) in .htaccess files. Note that Options All does not set MultiViews; you have to ask for it by name.

    The effect of MultiViews is as follows: if the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client’s requirements.

    MultiViews may also apply to searches for the file named by the DirectoryIndex directive, if the server is trying to index a directory. If the configuration files specify

    DirectoryIndex index
    then the server will arbitrate between index.html and index.html3 if both are present. If neither are present, and index.cgi is there, the server will run it.
    If one of the files found when reading the directive is a CGI script, it’s not obvious what should happen. The code gives that case special treatment — if the request was a POST, or a GET with QUERY_ARGS or PATH_INFO, the script is given an extremely high quality rating, and generally invoked; otherwise it is given an extremely low quality rating, which generally causes one of the other views (if any) to be retrieved.

  2. MustLive каже:

    Vyacheslav

    Спасибі за інформацію про те, що це є базовий функціонал Апача. Зазначу, що опція MultiViews задається по дефолту - як це було в конфігу мого Апача (1.3.23), і я думаю в більш нових версіях це також може мати місце. Я додав інформацію про дану опцію в свою статтю.

    Хоча Apache 2.x мені не траплялися з даною осибливістю (з ввімкненим MultiViews), але як я почитав опис на офіційному сайті, в другій версії Апача дана опція також існує. Тому виходить, що мені просто не траплялися такі сервери з Apache 2.x, де б дана опція була ввімкнена (тільки Apache 1.x).

    А ще можна прочитати RTFM від апача

    Це якщо комусь це потрібно (наприклад, для його роботи). З часу установки на початку 2001 року собі на ПК Апача, я не читав жодних FAQ і RTFM по Апачу :-) . Обхожусь без цього і зі всім розбираюся сам (завжди так роблю). А якщо виникають питання по конкретним функціям чи модулям Апача, то читаю статті на відповідну тему.

    Кривонастроєний сервер - проблеми адміністратора.

    Причому як адміна сервера, так і адміна сайта (зокрема на віртуальних хостінгах). У випадку якщо адмін сайта не може (або не вміє) через .htaccess налаштувати сервер (зокрема дану опцію). Наприклад, в мене на одному сервері на Мірохості (коли там був Апач 1.x) був ввімкнений MultiViews, а коли деякий час тому на сервері поставили Апач 2.x, то дана опція були вимкнена.

    І криво налаштовані сервери, в тому числі сервери де використовуються дефолтні налаштування (хоча б частина) - це звичайне явище. Сам з таким стикався на власній практиці.

  3. MustLive каже:

    You can read this article on English: Fingerprinting of Apache web server.

Leave a Reply

You must be logged in to post a comment.