以前只是听说某某互联网公司被黑,某程数据库被物理删除。每每在知乎上看见这种文章自己还乐的不行,但是今天我自己居然也被黑了,真的是悲愤异常,接下来就按照时间线梳理一下自己被黑的这一波。
10:30分 页面打不开了!!!
早上起床刷了牙洗了脸我默默打开自己的笔记本想看过去的一夜服务器流量和运行状况,我找到后台登录接口,输入用户名和口令点击了提交,郁闷的事情出现了浏览器显示数据已经提交但是既没有页面跳转也没有提示密码输入错误就这样等了五秒钟,我以为是宿舍的网络又出现毛病了于是切了另外一个网又试了一次发现结果还是一样,我切出去试了一下hao123这个网,发现打开的很迅速啊。我又想着打开博客首页看看首页的情况怎么样,结果首页的情况也令人揪心,基本上就是这样的显示:
事实上,实际的情况比这个图稍好一些。当时个人的头像能够正常显示,首页背景大图下的个人信息也能正确显示。手机版wap网页的情况与首页类似,同样是基础的个人信息与头像可以加载但是博客的正文内容无法加载。我当时就猜测应该是数据库出现问题了,因为系统在设计的时候就被设定为服务器启动时个人信息即从数据中加载至内存中,这部分个人信息的生命周期与整个web应用的生存周期相同。因此页面能出现,个人信息可以出现应该不是服务器出现问题。剩下那些无法出现的信息都与数据库有关,应该是数据库出现了问题。
11:00 数据库被物理删除!!!
紧接着我打开putty,远程连接主机。连接的时候我在想会不会是程序哪里出现异常卡住了还是怎么着。进入之后我首先停止服务器应用层软件,然后尝试重新启动服务,还好服务启动成功了,接着,我再次停止应用层服务器(因为这么做是想测试与数据库的连接,一般连接问题会在第二次停止时暴露)果然,在第二次尝试停止服务时出现了异常,服务器抛出Connection
refused异常,说明服务器与数据库无法正常连接。首先我想打的是会不会是数据库的密码写错了,因为之前也因为密码写错导致过这样的问题,但是我明白这个错误出现的机率很小,因为上次部署后已经正常运行很长时间了要是密码写错早就出问题了。不出所料,不是密码的问题。无奈,只好查看服务器日志:
一打开直接吓懵了,砰砰砰一长串异常信息。我仔细看了一下最多的一个异常是说无法与数据库建立连接,尝试三次后放弃。我十分不解,但是一时也没个头绪。
想了半天实在想不出来哪出问题了之后我想试试在本地远程连接一次数据库看看到底是怎么了。我打开navicat找到远程数据库的那个连接双击,居然毫不费力地连接成功了。当时我真的一脸懵逼,这是什么情况,远程连接都正常,本地连接却失败。而下一秒,我就恍然大悟了。navicat在连接成功后弹出了我所有的已知数据库:整个mysql下只剩了两个默认数据库,其余的数据库全部都不见了,这我才回过神来明白了一切。之所以连接错误是因为数据库早就被物理删除了所以才一直连接失败。
11:20 似乎多了点什么。。。
正当我疑惑为什么数据库会被物理删除时,我惊奇地发现远程连接下似乎多了什么:
怎么我自己的mysql下多出了一个我陌生的数据库,我双击打开这个数据库发现里面也没有任何数据。我瞄了一眼这个数据库的名字a_QQ2997057352,这该不会是个QQ号吧。想到这里我记已经有点预感不祥了,我打开QQ搜了一下这个号码:
事情到这里已经十分明朗了,数据库被破解了,所有数据库被物理删除。真是。。。
11:50 艰难恢复。
接下来呢?怎么办,加他qq付钱恢复数据吗?我不会向黑恶势力低头的,还好我保留了所有的数据库源代码。我一个一个把数据表重新建好,然后重新远程登录主机,暂停了所有服务,再重新启动服务。还好这次正常了,没有出现任何异常,查看服务器日志也没有发现异常了。我重新打开主页发现一切都恢复正常了,只是所有的数据都没了,一千多条数据全部没了,然后改密码,改密码,改密码。真是愉快的一天啊。
没办法,接下来我的博客只有从零开始了。
反思
安全无小事,这次数据库被这么轻松的破解和我自己安全意识不强有很大关系。自己总是觉得被黑这种事儿不会这么巧落在自己的头上,于是乎数据库的登录密码一直沿用默认的账号和密码(其实默认的root账户根本不用密码就能进),而且数据库从来不备份。这才导致了被黑之后数据完全丢失的惨状,在之后一定要加强安全意识,勤做备份。警示,希望被黑这事儿不要再落我头上了。
2016年11月28日