gpt4 book ai didi

iis - 了解 IIS 中的路径规范化

转载 作者:行者123 更新时间:2023-12-01 18:04:15 24 4
gpt4 key购买 nike

我想在我的 IIS 网站中禁用目录遍历,例如 example.com/page/../other-page(甚至是真实页面)。我尝试过使用自定义响应进行请求过滤和 URL 重写。

有关 denyUrlSequences 的 Microsoft 文档请求过滤的一部分实际上使用 .. 作为 an example :

The following example Web.config file will deny access to three URL sequences. The first sequence prevents directory traversal, […]

<configuration>
<system.webServer>
<security>
<requestFiltering>
<denyUrlSequences>
<add sequence=".." />
[...]

...但它不起作用;在拒绝规则运行之前,example.com/page/../other-page 已经变成 example.com/other-page。您可以通过为 page/sub 设置拒绝规则并访问 example.com/page/./sub-page 来证明这一点。规范化路径被规则阻止,但在原始状态下不会匹配。

我已经在 IIS v7.5 和 v10 上对此进行了测试,我想它也存在于每个中间版本中。

  1. 正在做什么标准化? (可能this library?)
  2. 它在请求生命周期中什么时候发生?
  3. 如何在不造成安全漏洞的情况下成功阻止以下序列? ...///

互联网搜索只想告诉我旧版本 IIS 中大约 2000 年的漏洞,或者如何启用带点的 MVC 路由。

调试说明:如果您使用 curl 来测试此行为,请确保添加 --path-as-is选项,因此它不会在客户端中进行标准化。一些浏览器似乎也在进行客户端标准化。
使用说明:名义上我正在尝试关闭 example.com/clubs-baby-seals/../about-us 以免有人成功获取链接加载作为对海豹虐待的认可。

最佳答案

任何人都可能会改变它,从浏览器到 HTTP.sys 或最终的 IIS。重要的一点是用户是否有权访问他们最终获得的资源。如果用户已经访问过,则不存在安全漏洞,因为他们也可以在浏览器中输入标准化后的最终地址。使用“..”点不会透露除已有信息之外的任何其他信息。

另一方面,如果您确实想知道谁更改了路径,我会亲自进行一些网络跟踪和 FREB 日志记录,以查看每个阶段发生的情况。我不知道答案。

关于iis - 了解 IIS 中的路径规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56116076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com