03.02.2016 @ 14:06 Перевод OWASP Testing Guide. Часть 2.3. owasp, web security Представляю вашему вниманию очередную часть перевода OWASP Testing Guide. В данной статье речь пойдет о изучении расширений файлов. Предыдущие статьи Тестирование: введение и задачи Сбор информации с помощью поисковых систем Определение веб-сервера Поиск информации в метафайлах веб-сервера Определение веб-приложений на сервере Поиск утечек информации в комментариях и метаданных Определение точек входа веб-приложения Составление карты веб-приложения Определение фреймворка веб-приложения Определение веб-приложения Составление карты архитектуры веб-приложения Тестирование конфигурации инфраструктуры веб-приложения Резюме Зачастую с помощью расширений файлов можно легко определить какие технологии, языки и плагины используются веб-сервером для обработки получаемых запросов, и позволяет упростить построение атаки, опираясь на полученную информацию. К тому же, иногда неправильная настройка веб-серверов позволяет с легкостью получить конфиденциальную информацию о учетных данных для доступа. Часто необходимо определить расширения файлов, которые можно загружать на сервер, благодаря чему можно получить неожиданный результат, так как файл, с определенным расширением, может не обрабатываться операционной системой веб-сервера. При проведении тестирования крайне важно определить как веб-сервер обрабатывает различные файлы, например, какие файлы возвращаются в виде текста, а какие выполняются на стороне сервера. Нужно также учитывать тот момент, что разработчики могут пытаться запутать атакующего, используя ложные расширения файлов. Как тестировать Брутфорс расширений файлов Отправляйте http[s] запросы используя различные расширения файлов, изучая как они обрабатываются, нужно брутфорсить расширения файлов отдельно в каждой директории. Также необходимо определить директории, которые позволяют выполнение скриптов. Директории веб-сервера можно определить с помощью сканеров уязвимостей, которые осуществляют их поиск по словарю наиболее распространенных. Нужно так же отметить то, что работа с различными директориями позволит лучше разобраться со структурой тестируемого веб-приложения. Если веб-приложение спроектировано с учетом балансировки нагрузки, то необходимо изучить каждый из используемых серверов, так как их настройки могут различаться. Например, могут использоваться разнородные технологии (представьте себе объединение из IIS и Apache веб-серверов для распределения нагрузки, что может привести к несколько ассиметричному поведению между ними и вероятно различным уязвимостям). Пример: Тестировщик обнаружил файл connection.inc. При попытке доступа к нему — получаем его содержимое: <? mysql_connect("127.0.0.1", "root", "") or die("Could not connect"); ?> Благодаря данному файлу тестировщик сразу определит используемую тестируемым вебприложением СУБД — MySQL, а также учетную запись, используемую для подключения. Содержимое файлов со следующими расширениями никогда не должны выдаваться веб-сервером, так как они могут содержать чувствительную информацию: .asa .inc Файлы со следующими расширениями отображаются браузером либо загружаются, им стоит уделить внимание, могут содержать различную полезную информацию: .zip, .tar, .gz, .tgz, .rar, …: архивные файлы .java: исходный код Java .txt: текстовые файлы .pdf: PDF документы .doc, .rtf, .xls, .ppt, …: офисные документы .bak, .old и прочие расширения, используемые для резервного копирования. Сверху приведены лишь несколько примеров, существует слишком много файловых расширений, чтобы приводить их здесь. Более полный список расширений файлов — http://filext.com/ Определять используемые веб-сервером расширения файлов можно различными способами: с помощью сканеров уязвимостей и пауков, вручную, с помощью поисковых систем. Загрузка файлов Различные файловые расширения могут быть использованы для обхода фильтров, мешающих загрузке исполняемых файлов. Примеры file.phtml выполняется как PHP код выдается веб-приложением, но не обрабатывается обработчиком PHP ISAPI shell.phPWND может быть загружен SHELL~1.PHP будет расширенна операционной системой, а затем обработается обработчиком PHP ISAPI Тестирование по методу белого ящика Тестирование по методу белого ящика сводится к изучению конфигурации веб-серверов. Если веб-приложение полагается на балансировку нагрузки используя разнородные технологии, то нужно убедится что различий в их поведении не наблюдается. Инструменты Nessus и Nikto могут определить наиболее часто используемые директории. Также могут пригодится следующие инструменты: wget — http://www.gnu.org/software/wget curl — http://curl.haxx.se google abychutkin 7667 Web security Читать дальше >>