Виртуальный хост Tomcat для предотвращения атаки с неправильной обработкой ввода

В настоящее время я пытаюсь исправить уязвимость сайта, в основном это один из типов атаки «Неправильная обработка ввода».

Пусть ' и есть веб-сайт хакера www.hacker.com

всякий раз, когда есть запрос, отправляемый на www.mywebsite.com с измененной точкой заголовка « Host » на ] www.hacker.com , мой сайт создаст перенаправление на www.mywebsite.com вместе с любым URL-адресом. например,

Нормально:

Host: www.mywebsite.com 
GET  www.mywebsite.com/get/some/resources/
Reponse 200 ok

Взломать:

Host: www.hacker.com (#been manually modified) 
GET  www.mywebsite.com/get/some/resources/
Response 302 
Send another Redirect to www.hacker.com/get/some/resources 

Мой веб-сайт работает на Tomcat 7, я попробовал какое-то решение с настройкой виртуального хоста, указав неизвестный хост на defaultlocalhost , который, как предполагается, должен делать ничего такого. но по какой-то причине он по-прежнему отправляет перенаправление.

Вот моя конфигурация хоста server.xml :

<Engine name="Catalina" defaultHost="defaultlocalhost" jvmRoute="jvm1">  
<Host name="www.mywebsite.com"  appBase="webapps"
        unpackWARs="true" autoDeploy="false" deployOnStartup="true">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>

  <Host name="defaultlocalhost"  >

  </Host>

Итак, мой вопрос: на правильном ли я пути, чтобы предотвратить подобные атаки ? Если да, то что я сделал не так, что все еще не работает? (Конечная цель состоит в том, что если передан не законный Хост, запрос следует отбросить / проигнорировать / вернуть 404, но не перенаправить с 302 )

Заранее спасибо.

Подробнее об атаке здесь: http://www.skeletonscribe.net/2013/05/practical-http-host-header-attacks.html

http://projects.webappsec.org/w/page/13246933/Improper%20Input % 20Handling

3
задан 18 May 2017 в 20:37
1 ответ

Ну что ж, в конце концов, отвечу на мой собственный вопрос.

После присоединения к списку рассылки пользователей Tomcat (адрес электронной почты для подписки: (скрыто) Парень по имени Андре помог мне решить эту проблему:

в основном то, что я сделал неправильно, отсутствует appBase в моем defaultlocalhost

  <Host name="defaultlocalhost" appbase="whatever" >

  </Host>

Приведенная выше конфигурация успешно возвращала статус 404 всякий раз, когда был незаконный запрос был отправлен. Причина в том, что всякий раз, когда вы не устанавливаете appbase , по умолчанию всегда используется webapps , поэтому он по сути ничего не делал с моей исходной конфигурацией.

Надеюсь, это поможет любому, у кого была подобная проблема.

1
ответ дан 3 December 2019 в 07:23

Теги

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