Визначення веб сервера 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 мені не доводилося зустрічати інших веб серверів з подібною особливістю.