Apache 为看似有效的 URL 生成 301 代码(渗透测试)

Apache 为看似有效的 URL 生成 301 代码(渗透测试)

我正在网站上使用 Burp Suite 渗透测试器,它显示出一些我可能可以忽略的小问题,但无论如何我都想弄清楚到底发生了什么。

GET 请求如下:

GET /faqs/?x9rf3mkslk=1 HTTP/1.1
Host: abc.com
Accept-Encoding: gzip, deflate, br
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.85 Safari/537.36
Connection: close
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Sec-CH-UA: ".Not/A)Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"
Sec-CH-UA-Platform: Windows
Sec-CH-UA-Mobile: ?0
Content-Length: 0

响应是 301 重定向:

HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Feb 2024 10:01:53 GMT
Server: Apache
Location: https://abc.comfaqs/?x9rf3mkslk=1
Content-Length: 249
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://abc.comfaqs/?x9rf3mkslk=1">here</a>.</p>
</body></html>

对于此域名,Apache 配置或 .htaccess 中没有设置 301 重定向。但令人困惑的是 Apache 如何处理此请求。请求有位置abc.com和 GET,/faqs/?x9rf3mkslk=1但如果我将其放入abc.com/faqs/?x9rf3mkslk=1浏览器中,页面会正常加载,并正确记录。然而,Burp 的请求被记录在默认 HTTPD 日志文件夹中,而不是域日志的位置。因此,它被记录为请求是针对 IP 而不是域或服务器主机域(这是不同的)。

此外,您会注意到 301 响应中域名后没有正斜杠,因此 HTML 中的链接无效。

我想知道这个301是如何生产的?

相关内容