Microsoft's IIS 5.0 поставляется с набором файлов, которые демонстрируют различные особенности ASP языка. Один из этих файлов позволяет удаленному пользователю рассматривать источник любого файла в Web корне с расширением .ASP .inc
.htm или .html.
Функция fValidPath в CodeBrws.ASP содержит следующий комментарий:
REM **************************************
REM intended behavior:
REM allow access to only .asp, .htm, .html, .inc files
REM in some directory starting from /IISSAMPLES
REM and without .. in the path
REM **************************************
Функция fValidPath сначала проверяет начинается ли основной каталог с "/IISSamples", затем проверяет, что последние символы запроса - одно из позволенных расширений, и наконец проверяет, присутствует ли последовательность ".." где-нибудь в строке.
Если ".." заменить Unicode представлением, то код InStr (1, strPath, "..", 1) в CodeBrws.ASP не сможет отловить ее. Т.е. можно создать запрос, который обойдет входные фильтры и отыщет источник любого файла в пределах корневой Web директории.
Следующий запрос раскрывает содержание
default.asp:
/iissamples/sdk/asp/docs/CodeBrws.asp?Source=/IISSAMPLES/%c0%ae%c0%ae/default.asp
Уязвимость обнаружена в Microsoft's IIS 5.0.