HTTP 请求中错误且神秘的字符替换

HTTP 请求中错误且神秘的字符替换

我看到用户发出了奇怪的请求,但这些请求在其他方面似乎是合法的。基本上,他们的浏览器发出的请求中的某些字符似乎被替换了,似乎是随机的。从我的 apache2-logs 中:

wdomain.com:80 A.B.C.D - - [01/Jul/2015:14:21:05 +0200] "POST /index.php?id=699&dID=foo HTTP/1.1" 301 608 1822125 "http://www.vdomain.se/my-profile/private-messages/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTLL, like Gecko) Chrome/43.0.2357.124 Safari/537.36"

例如,这里dID应该是eIDvdomain在 referrer 中应该是wdomainKHTLL in the user-agent should be当然还有 KHTML``!

wdomain.com:80 A.B.C.D - - [01/Jul/2015:14:21:11 +0200] "GET /my-profile/private-messages/?dID=foo HTTP/1.1" 404 24471 541869 "http://wdomain.com/my-psofile/private-messages/" "Mozilla/5.0 (Macintosh; Intel Mac NS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2357.124 Safari/537.36"

此处的my-profile引荐来源已切换为my-psofile

什么原因导致了这些看似随机的替换?似乎可以排除 rouge 扩展,因为某些替换不应来自 DOM 中的更改,例如 referrer 和 user-agent 的更改。由于用户在其他方面看起来是无害的,并且更改是如此随机,因此似乎不太可能有任何恶意。

答案1

可能是某些东西拦截并错误处理了客户端和您之间的流量。您可能希望使用 Tcpdump 或类似工具来查看网络上实际收到的数据包,以确保问题不是 Apache 模块以奇怪的方式重写请求。

如果您可以在客户端数据包离开其机器时拦截它们,那么这也许会告诉您问题是否是由他们那边产生的(可能是浏览器插件),或者是中间人 - 比如代理。

相关内容