我在网页上发现了内容欺骗的漏洞。
此网址:
Apache输出:
未找到
请求的网址/www.mygreatsite.com已移至www.evilsite.com。检查0UT H0W COOL新站点!可悲的是,在这台服务器上找不到该文件。
-
URL覆盖Apache-Error并输出添加到浏览器中URL的文本以及404错误。
实际上,所有对服务器的请求都应该重定向到CMS(Typo3),后者又处理404错误并显示自定义页面。
当我输入不存在的URL时,这非常有效。只是上面提到的URL搞砸了一切。
有趣的是,当我从URL的末尾删除«%00
»时,请求将被转发到CMS并显示正确的错误文档。
我试图在htaccess文件中添加一个单独的ErrorDocument-Directive - 但没有成功。
任何想法出了什么问题以及如何解决这个问题?
正如Anubhava所指出的,当检测到NULL-Byte时,Apache不会加载任何模块而只会抛出404.这就是为什么htaccess中的ErrorDocument
和mod_rewrite不起作用的原因。
[编辑澄清]
答案 0 :(得分:1)
%00
或Hex \x00
是一个NULL字节。当Web服务器在最后找到一个NULL字节时,Web服务器认为它是一个欺骗请求,并认为任何指令处理都是危险的。
出于安全原因,网络服务器未加载此请求的任何模块,并返回404 / Not found
状态。浏览器会在未找到文本下方显示默认的404页面,其中包含已解码的网址。