我在我的Apache访问日志中看到像这样的重复请求,他们一直在吃掉我所有的CPU。
我有一个正常的WordPress安装。 所有我在Apacheconfiguration中更改是将DocumentRoot从/ var / www / html更改为/ var / www ssl和默认configuration。
此外,请求中引用的文件(updatedll.jpeg)在我的服务器上不存在,也不在Web应用程序的任何页面提供的源代码中引用。
这可能是一个安全威胁? 这些实际上是什么,我能做些什么来阻止他们。
我改变了我的服务器的IP地址。 他们还在不断的来。 这意味着有人实际上打到域名而不是IP地址。
为什么我的服务器为这些请求发送一个301? 难道不应该发送一个404? 是否因为Wordpress安装在我的根目录中,并且为Wordpress提供的.htaccess文件正在发送301redirect?
我的磁盘访问日志也间歇性地出现高峰。 但没有人真的访问该网站。 我看不到任何访问日志,除了下面的这些。
此外,我看到所有的请求似乎来自以下5个IP地址之一。
201.4.132.43 - - [05/Jun/2014:07:35:08 -0400] "GET /updatedll.jpg HTTP/1.1" 301 465 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; BTRS103681; GTB7.5; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; AskTbATU3/5.15.29.67612; BRI/2)" 187.40.241.48 - - [05/Jun/2014:07:35:08 -0400] "GET /updatedll.jpg HTTP/1.1" 301 465 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 186.56.134.132 - - [05/Jun/2014:07:35:10 -0400] "GET /updatedll.jpg HTTP/1.0" 301 428 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" 71.223.252.14 - - [05/Jun/2014:07:35:13 -0400] "GET /updatedll.jpg HTTP/1.1" 301 465 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; BTRS31756; GTB7.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.2)" 85.245.229.167 - - [05/Jun/2014:07:35:14 -0400] "GET /updatedll.jpg HTTP/1.1" 301 465 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; MAAU; .NET4.0C; BRI/2; .NET4.0E; MAAU)"
UPDATE
看起来是32个不同的IP地址,现在似乎是我的服务器。
而且,命令“ngrep”GET /updatedll.jpg'port 80“的输出如下:
T 75.172.162.70:1616 -> 162.243.34.213:80 [AP] GET /updatedll.jpg HTTP/1.1..Accept: */*..Accept-Encoding: gzip, deflate..U ser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; BTRS31756; GTB7.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506 .2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; InfoPath.2)..Connection: Kee p-Alive..Host: www.reinventweb.com.... ############### T 85.245.0.83:65166 -> 162.243.34.213:80 [AP] GET /updatedll.jpg HTTP/1.1..Accept: */*..UA-CPU: x86..Accept-Encoding: gzi p, deflate..User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)..Host: reinventweb.com..Connection: Keep-Alive.... ######
在Google上search文件名会显示您的日志文件的几个副本,并且只显示另一个命中,这似乎是某个服务的上载日志 。 你应该能够知道这个日志是否与你的网站相关,我不知道。
这五个IP地址中没有一个出现在上传日志中,所以没有告诉我们很多。 上传日志中的文件名对我来说是合法的。 这些文件的内容是否与他们的名字相匹配是不可能的,不知道内容。
最初可能在名为updatedll.jpg的文件中有什么? 我猜测有人截图如何更新一些DLL并上传到服务,以便与他人分享。 共享可能不会发生在公共的webforum上,因为那样我会发现更多的点击。
为什么有人认为文件驻留在主机上? 我不知道。 我发现在Apache LogFormat包含\"%{Host}i\"是很有用的。
至于状态码,你可以首先尝试自己访问文件名,看看在日志文件中是怎么看的。 如果你得到一个不同的状态代码,你自己对这个文件的请求和他们的请求之间必然有所不同。
如果你不知道如何重现完全相同的状态码,那么就尝试产生一个数据包转储的stream量。 你可以使用类似tcpdump -pni eth0 -s0 -Uw output.pcap 'host 201.4.132.43 || host 187.40.241.48 || host 186.56.134.132 || host 71.223.252.14 || host 85.245.229.167' tcpdump -pni eth0 -s0 -Uw output.pcap 'host 201.4.132.43 || host 187.40.241.48 || host 186.56.134.132 || host 71.223.252.14 || host 85.245.229.167'
稍后,您可以使用Wireshark检查输出,以确切了解请求的样子。 切记使用Wireshark的更新版本,以防有人试图利用Wireshark中的漏洞。 一旦你看到确切的请求,你应该能够通过telnet命令重现答复。
你是基于域名redirect吗? 例如从example.com到www.example.com? 这可能解释了301的回应。
如果你的服务器正在响应301,这可能没有太大的危害。 然而,某个地方的某个页面可能有一个破碎的图像链接。 为了跟踪这些,你应该看看传入请求中的Referer头。 您可以从Web服务器上logging引用者,但直接查看stream量可能更容易。
而不是tcpdump,(哪个kasperdbuild议)我会用ngrep:
ngrep 'GET /updatedll.jpg' port 80