在nikto扫描过程中,我们发现Apache(或其出现)在301重定向到https的过程中返回了服务器专用IP。我能够通过简单的卷曲来复制它:
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文档中,默认情况下始终为Off 。我还更改了/ etc / hosts文件,使主机名引用127.0.0.1,但仍然没有更改。我只是不知道301重定向响应中IP的位置或原因。
禁用http1.0
对于特定站点,我已将Apache conf修改为:
RewriteCond %{THE_REQUEST} HTTP/1\.0$
RewriteRule .* - [F]
但是,当我执行新的curl请求或再次运行nikto时,似乎没有什么区别。
任何想法都会很棒,因为我一天的大部分时间都在尝试解决这个问题:)