如何检测下载的插件是否包含后门?最近很多小伙伴一直在讨论网站被黑和下载的免费主题插件被挂马的话题,那么今天杜澔沐就来教大家如何识别wordpress主 题插件是否被留了后门。
首先来说下wordpress的运行环境,相信稍微有点常识的站长都知道wordpress是一款运行在php+mysql构架之 上的建站系统,而且wordpress主题插件都是编写成.php后缀的可执行文件这是为什么wordpress的免费主题插件很容易留后门的问题。
既然 都是由php编写的,那么我们只要知道一般php后门常用程序就能一定程度上察觉到主题插件中是否存在后门木马,下面杜澔沐列出一些常见php后门函数:
执行系统命令: system, passthru, shell_exec, exec, popen, proc_open(高危)
代码执行: eval, assert, preg_replace('/$pattern/e')(高危)
文件操作:file_get_contents, file_put_contents, fputs, fwrite(高危)
字符串加密解密压缩解压隐藏:base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13, base64_decode, gzcompress, chr(可疑)
wordpress创建后门用户:wp_create_user, WP_User, set_role(高危)
如果在主题中杜澔沐标注的高危代码基本就可以确定这款主题很有问题了,基本上都是为了留后门或者是做些小动作了。
如果是发现了本文标注的可疑代码那就 要注意了很有可能加密部分的代码就是后门。很多小伙伴肯定不懂preg_replace(‘/$pattern/e’)这段代码是什么意思。
下面杜澔沐就来 给大家解释下,preg_replace函数使用e修饰符之后在执行逆向引用替换完之后会将替换的代码当作php代码运行,所以也是一种非常常见的后门代 码。
在检测主题插件是否包含后门的时候只要用文本搜索工具或者软件搜索主题插件的php文件是否包含以上关键字,在搜索到preg_replace时需要 人工对比下代码查看是否包含e修饰符,如果主题文件出现大量的chr(2).chr(3).chr(58)这样类似的代码也要小心了,另外发现主题文件出 现一大堆无规则的字符也要小心了一般都是加密后的代码很可能隐藏了后门。
PS:由于平时杜澔沐整理的主题和插件比较多,所以很难将所有的投稿文件都检查一边。最多也就检查下几个关键文件是否挂马,所以请大家在下载主题后尽量再自己检查一遍。