在之前的一段时间,有不少的朋友的WordPress网站遭受了攻击而被挂上木马,造成网站会进行跳转到一些购物、赌博等等网站上,对我们的网站访问会造成非常恶劣的影响,并且会极大地拖慢我们网站访问的速度,接下来我们就来分析一下,被种木马之后应该如何进行查杀木马,如何防止被种木马。网站被攻击而种上木马的一般情况木马植入在绝大部分情况下,黑客是不会一对一的进行植入,而是采用效率更高的广泛攻击。 很多朋友说,我的网站就是一个小网站,企业展示型的,没什么流量,关注度不会很高,黑客不会攻击的吧? 这样的思维大有人在,黑客在对网站进行攻击种植木马时,很大一部分并不是看见你的网站而单独针对你的网站进行攻击,而是通过广撒网,利用程序进行广泛的尝试攻击,遇到能够攻破的网站就马上种上木马,所以只要你的网站或者服务没有做好必要的防御工作,那么就会有非常高的风险被植入木马。 木马植入的2种常见的方式篡改网站文件 在网站被攻击之后种上木马最常见的方式是篡改网站文件,如WordPress的根目录中index.php文件,这个文件篡改之后会对全站造成影响,也有可能对主题的header.php、footer.php进行篡改,也会影响到整个网站,从而整站都会跳转。 解决方案,重装WordPress程序、重装主题,2种方式可以进行重装: 1.后台重装,WordPress主程序可以在仪表盘--更新处点击重装WordPress,WordPress主题若支持后台升级,可以在外观--编辑中将版本号改低,然后进入仪表盘--更新处进行更新。 2.ftp重装,下载最新的WordPress主程序和主题程序,WordPress安装包使用本地覆盖除了wp-content文件夹之外的所有文件,WordPress主题覆盖所有文件。 篡改数据库 数据库的篡改,会将木马代码录入到你的数据库中,而这些数据会被调用在页面上,以WordPress为例,一般的木马会录入到你的WordPress页面、文章中的正文,这种方式比较隐蔽,很难被发现,并且如果文章数量较多,影响的页面和文章数量也非常大,造成首页、分类目录、归档页、搜索页不会受影响,而只有文章、页面受到影响,在没有查明木马的位置时,具有非常大的隐蔽性,甚至有的木马非常聪明,从cookies判断是否弹出过页面,若弹出过页面就不再弹出了,给我们检测造成错觉,更加难以找到木马位置。 解决方案:在会弹出的页面(也就是被感染的页面)空白处:右键---查看源代码,在源代码中ctrl+f 搜索弹出的目标链接,如果搜索不到,可以搜索<script 查看所有的脚本,是否有非常陌生的脚本外链存在,点击脚本链接打开脚本检查是否有目标外链的存在即可检查到相关脚本。 WordPress网站木马清除实例回顾下面是一段清除WordPress页面和文章中的例子: 某用户网站会在第一次进入网站时,点击进入某些页面跳转一个国外的购物网站,并且在弹出之后一次之后就不再弹出了,这样一开始迷惑性非常高,造成不停的去寻找网站文件中的木马,浪费了很多时间。 所以从前端输出的角度,在弹出的页面中查看网页的源码,进行搜索弹出的目标网站地址,结果是无,也就是并没有在前端输出链接,所以可以判断,应该是以外链的方式链接一个弹出的脚本,所以我们在源码中搜索“ <script ”,查找陌生的外链js文件,找到如下:
这段代码引用了一个非常陌生 的js文件,从路径上分析,他并不是我们的网站内部链接,也就可以排除掉并不是我们网站上所加载的脚本,所以我们抱着尝试性的态度打开这个js文件(在浏览器中输入这个js文件的url:http开头 js结尾) 得到脚本代码如下:
可以看到我选中的url就是木马所弹出的目标网站,现在就可以判定这个文件就是隐藏在网站中的木马了。 找到位置就非常容找到木马并清除了,首先检查一下文件,这个弹出的页面是WordPress的页面,所以我们检查了主题文件中的page.php,结果是没有异常,之前也是用安装包进行覆盖过,所以可以排除文件感染的嫌疑,所以我进入了后台--编辑这个页面,在编辑器中打开文本模式,就看到了这个木马:
可以到编辑器中连续出现了几段这样的代码,这样我们就可以开始清理木马了。 如果你对mysql的sql语句比较熟悉,那么我们可以进入网站phpmyadmin,sql语句如下: UPDATE wp_posts SET post_content = replace(post_content, '将木马的代码复制进来',''); 将木马的这段js代码替换为空即可。 如果不熟悉sql语句,可以人工删除一下,每一篇文章和页面打开编辑器的文本模式,将木马清除。 实战总结 这一次的木马是一个远程的连接文件加载的跳转代码,如果黑客将这个远程的文件保存在我们网站的文件目录中,特别是无法完全替换的文件夹,如我们上传图片的文件夹,wp-content\uploads 里面,就很难去找到陌生的url了。所以如果找不到陌生的url外链的脚本文件,我们就只能逐个检查js脚本了,首先可以排除主题、插件内的脚本,这些脚本是可以在文件中覆盖的,排除这些脚本文件之后再继续查找就能找到了。 总结起来查找方式就是在遭受木马感染的页面上查看源码(请注意:此方法是先覆盖掉所有网站文件之后,仍然无法清除再开始的): 1.首先查找目标链接,如果是内置的脚本有可能会加密,也可以搜索目标链接的一些单词,如www.xxxx.com 搜索不到,可以搜索xxxx 。 2.目标链接搜索不到,开始查询脚本,源码中搜索“ <script ”,排除所有主题、插件的脚本,查看每一个脚本是否有目标外链。 3.查询到之后,注意木马位置,查看WordPress的编辑器文本模式、如果输出了自定义栏目,查看自定义栏目中是否带有木马代码,知道后使用sql语句清除,或者手动进行清除。 4.我们也可以借助第三方的安全网站或者软件,例如360网站安全检测,这里不做详细介绍,我们会在以后出一篇教程进行详细介绍。
WordPress网站如何防范木马攻击被种上木马的WordPress网站,绝大多数是因为自己的网站安全意识不高,让黑客有了可乘之机,所以每一个网站都需要做好防御和备份: 1.定期备份网站的文件、数据库,随时可以恢复整个网站。 2.最容易疏忽的内容,密码过于简单,网站后台账户密码不要一样,后台用户名不要使用admin,域名等一下就能猜出的名称、密码必须是数字+英文大小写字母+特殊字符。 3.ftp和数据库账号密码不要一样,密码也需要足够复杂,不要设置太简单的。ftp在网站工作上传完成之后,可以关闭的话尽量关闭。 4.安装一些WordPress安全插件,让黑客无法暴力破解你的网站用户名和密码。 5.mysql数据库远程连接可以关闭的话,一定要关闭,WordPress使用localhost连接数据库。 6.如果是虚拟主机,以上的功能足够防御了,因为虚拟主机的服务商会做好服务器安全配置的工作。如果是服务器,那么你需要更加专业的配置,你可以联系所在服务器提供商为你的服务器进行安全检测和配置,或者装上云锁、安全狗、360主机卫士等第三方安全软件进行防御。 (责任编辑:好模板) |