Во время nikto-сканирования мы обнаружили, что Apache (или так выглядит) возвращает частный IP-адрес сервера во время перенаправления 301 на https. Я смог воспроизвести его простым завитком:
curl http://example.com/ --http1.0 --header 'Accept:' --header 'Connection:' --header 'Host:'
Что возвращает:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://PRIVATEIP/">here</a>.</p>
</body></html>
Несмотря на то, что я уже определил проблему, ресурсы довольно ограничены, как ее преодолеть, и документация Nikto называет это ошибкой IIS 7.
Из того, что я вижу, наши варианты либо пытаются это исправить, либо не позволяют http1.0
Исправление:
Следуя этой очень старой рекомендации (https://securitytracker.com/id/1002188), я могу подтвердить, что для ServerName задано имя хоста сервера и что UseCanonicalName даже не отображается в файле http.conf, но при просмотре документации по Apache значение по умолчанию в любом случае отключено. Я также изменил файл / etc / hosts, чтобы имя хоста ссылалось на 127.0.0.1, но все равно не изменилось. Я просто не знаю, где и почему этот IP-адрес присутствует в ответе 301 перенаправления.
Отключение http1.0
Для конкретного сайта я изменил конфигурацию Apache:
RewriteCond %{THE_REQUEST} HTTP/1\.0$
RewriteRule .* - [F]
Тем не менее, нет никакой разницы, когда я делаю новый запрос curl или снова запускаю nikto.
Любые идеи были бы великолепны, поскольку большую часть дня я потратил на решение этой проблемы:)