ASP.NET MVC 5 Azure App ZAP Scan 指示代理披露漏洞 - 我们如何防止这种情况发生?
Posted
技术标签:
【中文标题】ASP.NET MVC 5 Azure App ZAP Scan 指示代理披露漏洞 - 我们如何防止这种情况发生?【英文标题】:ASP.NET MVC 5 Azure App ZAP Scan indicates Proxy Disclosure vulnerability - how can we prevent that? 【发布时间】:2020-09-30 03:48:42 【问题描述】:ZAP 扫描报告表明检测到或指纹识别了 2 个代理服务器。它说它对我们的 url 执行了 GET 和 POST 方法,包括 TRACE、带有 Max-Forwards 标头的 OPTIONS 和 TRACK 方法的攻击。我们已经通过 Web 配置更改或代码更改删除了不必要的标头,例如 Server 和 X-Powered-By ...以及响应中的 asp.net 版本标头,但我们仍然看到这一点。此外,提到的 url 只允许 GET 或 POST,而不是 TRACE、OPTIONS 或 TRACK 方法。我们甚至在 web.config 中有以下内容来防止这些动词:
<system.webServer>
<security>
<requestFiltering removeServerHeader="true">
<verbs allowUnlisted="true">
<add verb="OPTIONS" allowed="false" />
<add verb="TRACK" allowed="false" />
<add verb="TRACE" allowed="false" />
</verbs>
</requestFiltering>
</security>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="NotFound.html" responseMode="File" />
<remove statusCode="500" />
<error statusCode="500" path="Error.html" responseMode="File" />
</httpErrors>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
</system.webServer>
那么我们如何才能解决这个问题,或者我们可以做些什么来防止这种情况发生?谢谢
【问题讨论】:
***.com/questions/61485025/… 您可以先试试我的解决方案,看看是否满足您的需求。我以前自己试过。 所以我们也已经通过 presendrequestheaders 上的 http 模块删除了服务器头。我们还打开了 Azure 中站点上的 Https Only 设置。我可以在响应中看到没有返回 Server 标头,也没有返回 X-Powered-By (这是我们想要的)。此外,如果您要使用 OPTIONS、TRACK 或 TRACE 向我们网站上的任何 url 发送请求,它会以 404 响应,因为无法使用这些动词找到这些路由,只有 GET 或 POST - 因此不允许使用这些路由任何一个。我也不知道第二个代理服务器是如何被检测到的。 所以你已经删除了响应头,对吧? 您现在要阻止TRACE, OPTIONS, or TRACK
方法吗?
【参考方案1】:
我认为你无法解决问题。这部分我研究过,我也在portal提过票。
此响应不是来自服务器,它由 azure 前端处理,无法删除特定标头。
您无需花时间解决此问题,也可以向 Microsoft Azure 提出支持问题。
【讨论】:
以上是关于ASP.NET MVC 5 Azure App ZAP Scan 指示代理披露漏洞 - 我们如何防止这种情况发生?的主要内容,如果未能解决你的问题,请参考以下文章
从托管在 Azure 中的 Asp.net Core MVC Web App 获取“响应状态代码不表示成功:502(错误网关)”
从 GitHub 持续部署在 Azure 中失败(ASP.NET 5 和 MVC 6)
Azure 中的捆绑不适用于 bootstrap 和 jquery、ASP.NET MVC 5
从 Azure 中托管的 ASP.NET Core 5.0 MVC 站点调用 API/服务的间歇性套接字异常
Azure Web App 中的 ASP.NET 5 环境名称
Azure Ad SSO 成功收到 IdToken 但 Request.IsAuthenticated 为 false 并在 asp.net MVC 5 中声明为 null