【问题标题】:404 not being caught?404没有被抓到?
【发布时间】:2022-01-22 19:20:31
【问题描述】:

我一直在运行一些自动安全扫描,但以下 URL 触发了 404:

/%FF%FE%3Cscript%3Ehaikumsg%28326%29%3C%2Fscript%3E

这是从 Apache 服务器上的域上的路由运行的(因此应该很容易复制)。

我的 htaccess 是用 ErrorDocument 404 /site/404 设置的,但这并没有被捕获。我知道这一点,因为如果我完全清空 htaccess 文件,我仍然会看到相同的标准 apache 404 页面。

显然这是一个标签黑客,所以我必须小心它的处理方式,但是我想知道如何管理它,所以它至少可以完成我的/site/404 而不是什么都没有。

【问题讨论】:

  • 这可能会被一些额外的安全模块或防火墙捕获,因此它甚至没有达到你为错误文档的自定义配置甚至可以应用的程度。
  • 我该如何检查/调查?
  • 检查日志文件?与您的服务器管理员交谈?
  • 谢谢(不知道为什么我没想到!!)但那就是我!日志文件不报告任何内容 - 没有与 404 相关的错误。
  • 可能是 ModSecurity 或类似的东西。

标签: apache .htaccess


【解决方案1】:

事实证明,解决方案是将您的 404 重定向移动到 Vhosts 而不是 htaccess!非常简单的解决方案,这将解决它。 Apache 显然在访问 htaccess 文件之前就使用了 URL,因此需要在更高级别移动 404 重定向。

但是,如果您需要解码和使用 URL,那么以下内容会有所帮助: https://serverfault.com/questions/261683/how-does-apache-process-a-path-with-a-percent-encoded-url-in-it

基本上解决方案是在Vhosts文件中添加AllowEncodedSlashes On

根据https://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes

【讨论】:

  • 澄清一下,最初的 404(由 Apache 提前触发)是由 URL 中的 %2F(编码斜杠)引起的。 “安全功能”。这与请求是否实际映射到有效资源无关。
猜你喜欢
  • 2021-07-29
  • 2011-03-15
  • 1970-01-01
  • 2018-07-12
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多