Проблема безопасности при обходе каталогов

У меня есть веб-приложение Java, которое уязвимо для атаки через каталог (также известного как переход пути) через кодировку URL. После аутентификации:

  • , если я нажимаю http: // localhost: 8080 / Web / WEB-INF / web.xml, я получаю 404 (что нормально)
  • , если я нажимаю http: // localhost: 8080 /Web/%c0%ae/WEB-INF/web.xml, я могу прочитать файл (что явно не в порядке)

Согласно спецификации сервлета, папка WEB-INF не должна быть общедоступной , но в этом случае как-то работает. Я использую Websphere 5.1 с Java 1.4, Spring Security 2.0.5 и Struts 1.3. Из того, что я прочитал, похоже, это связано с кодировкой,% c0% ae является '.' (точка) в UTF-8.

Я пробовал то же самое в другом веб-приложении, которое работает в другой среде (Tomcat 6 с Java 7, Spring Security 3 и Spring MVC), и мне не удалось воспроизвести проблему. Это второе веб-приложение имеет фильтр для принудительного кодирования страниц в UTF-8 ( org.springframework.web.filter.CharacterEncodingFilter ), поэтому я попробовал ту же конфигурацию в первом веб-приложении, но это не помогло Хитрость. Есть идеи?

Спасибо.

8
задан Andrew Thompson 2 June 2011 в 00:43
поделиться