我正在编写 .NET Web 表单应用程序安全扫描报告,该报告扫描了门户并报告了“检测到隐藏目录”问题。
风险:可以检索有关站点文件系统结构的信息,这可能有助于攻击者映射网站。
测试尝试检测服务器上的隐藏目录。 403 Forbidden 响应 即使不允许访问,也会显示该目录的存在。
报告建议对禁止的资源发出“404 - 未找到”响应状态代码,或将其完全删除。
我修改了 web.config 文件以禁用目录浏览并设置。
但是,要返回 404 状态代码而不是禁止响应,需要识别并区分是经过身份验证的用户正在访问资源还是攻击者正在尝试检测隐藏目录。
为了解决此问题,我尝试实现 http 处理程序,该处理程序可以处理针对特定已知目录(例如“Images”目录)的请求并返回响应状态代码 404。
虽然 handler 可以返回 404 响应,但它只会限制对特定目录的访问。需要对其进行概括以限制对任何隐藏目录的访问。
如果有人了解更多有关修复隐藏目录检测到的漏洞的信息,请建议一个解决方案,该解决方案可以处理此类恶意攻击并返回 404 响应代码,而不是通过 403 禁止消息来显示隐藏目录。
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="403" />
<error statusCode="403" path="/404.html" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
此配置会将所有 403 错误重定向到自定义 404 页面,有效屏蔽隐藏目录的存在1。