Nginx proxy_pass exclude url with regex

Я пытаюсь передать прокси-сервером местоположение, исключая только казистика с регулярным выражением.

У меня есть этот URL / autocomplete / / , и я хочу передать прокси, только если var1 отличается от a , поэтому b / foo , c / foo ecc будут проксироваться.

В apache я использовал это:

ProxyPassMatch ^/autocomplete/a/(.*)$ !
ProxyPass /autocomplete/ http://localhost:1234/autocomplete/

В NGINX я пробовал следующее:

location ~ /autocomplete/(?<var1>.*)/(?<var2>.*) {
    if ($var1 != "a") {
        proxy_pass http://127.0.0.1:1234/autocomplete/$var1/$var2;
   }
}

Он работает для других значений var1 , но для a возвращает 404. Имена 8dot3 удалены из c: \ inetpub \ wwwroot ...

У меня та же проблема, о которой говорилось здесь Устранение уязвимости тильды IIS и применены все предлагаемые исправления:

  • Именование 8dot3 отключено на всех дисках
  • Имена 8dot3 удалены из c: \ inetpub \ wwwroot
  • сканирование fsutil & dir / x завершено, имена 8dot3 не найдены
  • IIS Request filtering deny rule and deny URL in place

Я все еще получаю результат уязвимый при использовании Инструмент PoC сканера коротких имен IIS со следующим результатом:

Краткое имя IIS (8.3) Версия сканера 2.3.8 (25 февраля 2016 г.) - сканирование инициировано 2017/03/06 20:10:05

  • Цель: https://website.name.com/
  • Результат: Уязвимо!
  • Используемый метод HTTP: DEBUG
  • Суффикс (магическая часть ): /a.aspx
  • Дополнительная информация:
    • Количество отправленных запросов: 145

Мне это не помогает определить, в чем проблема, и что она просто все еще уязвима. Я использую следующую команду:

java -jar iis_shortname_scanner.jar 2 20 https://website.name.com/

У меня есть три сервера приложений, стоящих за балансировщиком нагрузки, но пока серверы исправлены, я не понимаю, почему это будет иметь значение ....

Я подумал Лучше начать новый вопрос, так как другая ветка была рассмотрена и предоставлено успешное исправление, но, к сожалению, для меня это не так.

3
задан 13 April 2017 в 15:14
2 ответа

Исправлено путем добавления модуля URL Rewrite module в IIS на каждом сервере приложений и добавления входящего правила со следующим текстом:

  • Pattern: (^[^\?]\~.\?.$)|(^[^\?]\~.*$)
  • Action: Abort Request

Hopely that's some use. Сканирование после установки данного эксплойта дало результат "Неуязвимо" для данного эксплойта.

.
1
ответ дан 3 December 2019 в 06:28

Для себя я использовал фильтрацию запросов на запрещение последовательности в моем web.config:

<system.webServer>
      <security>
        <requestFiltering>
          <denyUrlSequences>               
            <add sequence="~" />
          </denyUrlSequences>
        </requestFiltering>
    </security>
</system.webServer>

Это проходит тесты сканера, которые я запустил против него.

.
2
ответ дан 3 December 2019 в 06:28

Теги

Похожие вопросы