记录阿里云服务器mysql被黑
前言
比上次服务器被黑还要恐怖的数据库被黑,再次强调,数据库不备份不做安全,你就可以准备跑路了。
这次记录一下整个被黑的过程,以及整个检查和处理的过程。
发现
上个月某一天,网站出现了无法登录的情况,出现了大量的错误日志报警,然后就牛逼了,上服务器一查发现数据库里面就剩了一个名叫PLEASE_READ的数据库,里面留下了一张表,然后留下了比特币的地址,说24小时不转账就删数据库备份。
马上就明白了,数据库被黑了。
然后百度了一下,发现相同的案例有很多。
三个想法
第一个想法就是,不能按他说的做,因为比特币的转账是完全匿名的,你根本不知道对面是谁,所以即使你转了也不可能还你数据,如果我是一个黑客,我大可以就不还给你,我还要保存你的数据,我累不累。所以用钱买回来是绝对不可取的。
第二个想法就是,数据能否恢复。恢复数据只要需要一些要求,一个是需要进行数据库备份,如果你有备份当然就可以恢复,只是可能恢复后的数据可能会有丢失,还是一种情况是使用binlog日志进行恢复,虽然比较麻烦,但是还是可以做的,不过需要你配置文件里面开启binlog。然后我看了一下,完蛋~!这个数据库完全没有备份,也没有开启日志,所有等于0
第三个想法就是,怎么被黑的。可能性最多两个,一个是你服务器本身被黑了,那黑你数据库很容易。还有就是数据库本身被黑了。然后我查询了一下服务器上的历史登录情况,以及服务器上的应用,发现服务器本身没有什么问题。那很明显是数据库被黑了。要不就是数据库被人通过某种方式入侵,后人从内部被人用sql进行修改,要不就是数据库密码直接被试出来了。
查找原因
1、我查询个服务器的各个角落,发现只有mysql的data目录里面存在问题,mysql用户目录都没有发现有特殊用户的存在,所以可以明确下来,是mysql密码泄露了。
2、应用代码没有上传数据库配置,所以数据库的配置只有我自己知道,所以不可能是由于别人透露了数据库密码导致,那么就是由于数据库密码被试出来了。
3、然后上阿里云看了一下,发现

Mysql异常UDF执行是啥?还有这种操作的呀?
然后发现:http://blog.51cto.com/laoxu/1305240
但是时间是在三月的时候,那个时候服务器才刚刚买,然后数据库也是刚刚装上去的时候,也就是说,其实可能那个时候服务器就已经出现问题了。而别人只是放长线钓大鱼?
处理
删除data目录,重置数据库,重启服务,正常了。
后续安全措施
1、数据库备份 敲黑板!!!
2、开启binlog日志
3、更换超级复杂的mysql密码
4、更换mysql端口号
5、禁止mysql远程访问
这几个安全措施个人认为是最简单有效的措施,数据库备份和开启日志是为了防一手用来恢复数据;一般黑客就是不断扫端口,而mysql默认的3306端口太容易被扫描到了,然后如果你的密码是123456,那么就GG了;禁止远程访问,这个是非常手段,如果只有本机或者几个固定的IP能访问你的数据库,那么你的数据库就肯定处于一个相对安全的位置,缺点是你维护mysql数据比较麻烦,你需要使用固定的IP去维护数据库,或者使用vpn通过内网访问数据库。
总之,数据库的安全还有很多措施,这里只是想提醒各位,公网上的数据库极度不安全,别人想黑你,那就是分分钟的事情,所以一定记得数据就是你的命。应用出现bug可以修复,数据出现问题,那就神仙难保了。
PS:这次出现问题的是我自己的测试服,所以宝宝一点也不慌,随你黑,最后我直接快照恢复了。但是也给自己一个警告⚠️
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?