当前位置:网站首页>阿里云中mysql数据库被攻击了,最终数据找回来了
阿里云中mysql数据库被攻击了,最终数据找回来了
2022-07-06 17:21:00 【莪假裝堅強】
介绍
昨天登自己的网站的时候,发现登不上去,由于是用springboot写的,存放在阿里云轻量云服务器中,所以我去后台查看了一下日志,发现是查不到数据了。
这个时候就发现是数据库出现了问题,然后通过图像化的工具打开了自己的远程数据库,发现自己建的数据库全都不见了,自己排查了半天没有发现是怎么回事,这个时候在别人的提醒下去找了一下阿里的客服,它们为我分配了工程师,工程师帮我确定了排查的范围
最后通过查看二进制文件发现的被国外的黑客攻击了
下面话的意思大概就是让我花钱去把数据买回来不然就将我的数据卖出去,还好数据不是很重要。
并且将我的所有数据库都删除了
mysql的配置
mysql5.6.46 阿里云服务器中的mysql数据库,使用时间不到一年
binlog
什么是binlog
简单通俗来讲,其实就是一个记录所有增删改操作记录的日志。我们可以通过它来对误操作的数据进行恢复,当然还可以用来进行主从数据库的同步操作。
binlog的三种模式:
①statement:记录每一条修改数据的sql。
优点:日志文件比较小,节约io操作,性能较好。
缺点:只记录执行语句,所以还需要保证在主从执行的得到相同的结果。所以准确性差。
②row:保存哪条记录被修改。
优点:准确性强。
缺点:日志文件比较大。
③mixed:兼顾前两者的优点。(我属于这种)
实际操作:
① 查看binlog有没有开启:如果没有开启的话,就彻底凉凉了,几乎没有恢复的机会了,不过可以找攻击者买回数据
在mysql中输入命令:SHOW VARIABLES LIKE ‘log_bin’; 如下所示
可以看到Value
是ON
如果没有开启的话,可以参考下面的文章,
https://blog.csdn.net/qq_21996541/article/details/107280382
也可以通过模糊查询,看到更多的信息
③ 查看binlog日志:
通过命令:SHOW MASTER STATUS
;可以查看当前是在哪个日志文件中,
通过命令:FLUSH LOGS;
可以截断日志文件,重新定向到新的日志文件中,我们在实际操作的时候,每次操作binlog恢复前,都需要执行下此命令,能够保证之前的日志文件不会再有新的日志在到这个文件中,影响恢复。
执行完之后再次查看的时候就会多一个
然后,可以根据命令:show variables like ‘%datadir%’; 查询出这些日志文件保存的路径
我们在服务器,cd 到这个目录下,这些文件确实存在。但是这些文件是二进制文件,用cat/vi这些命令是无法正常查看的。
这时候就需要我们的mysqlbinlog这个命令登场了,
首先,我们在服务器中输入命令:mysqlbinlog /www/serverl/data/mysql-bin.000020;
如果输入上面的命令报错的话,可以输入下面的命令
输入命令:mysqlbinlog --no-defaults /www/server/data/mysql-bin.000020; 可以看到有如下的一个文件信息。
然我们还可以在mysql中输入命令:SHOW BINLOG EVENTS IN 'mysql-bin.000020';
这样也可以看到binlog中记录的一些事件:
其中,server_id =1,由于我们没有设置,就是表示就是默认主机,Pos我的理解就表示的是一个偏移指针,就类似于一个时间节点,在这个时间节点完成了哪些操作。event_type就表示事件类型,xid事务,query查询,write rows表示插入数据,delete_rows删除数据,都是比较好辨认出来的。
④ 通过binlog进行数据恢复:
通过查看,发现我的数据据库都在mysql-bin.000010
这个二进制文件中
在该文件中可以清楚的看到我的数据库被删库前的最后一次操作时间是7月2号 10:35:34
删库前的时间是7月3号 0:20:06,一直到一点的时候才停止。
哎,花40多分钟来攻击一个没有什么利用价值的数据库,感觉有点不值得,而且还是在半夜。
可以看到被删除数据库的名字,有8个数据库,不过对于我来说,比较重要的就一个,有几个是平时测试的时候建的,里面也没有几条数据,
不过就是为了那一个最重要的,我就一定要将它找回来,只要还有一丝。
由于对于对于我来说比较重要的就一个数据库,其它的也没有什么数据,不是很重要,所有就通过恢复指定数据库的方式进行恢复。
通过如下命令生成sql
文件,然后通过sql文件进行恢复
mysqlbinlog --no-defaults --database=xiaochengxu_ks --skip-gtids --stop-position=410161 /www/server/data/mysql-bin.000010 > /xiaochengxu_ks.sql
其中 xiaochengxu_ks
是想要恢复的数据库的名字--stop-position=410161
被删库前的位置对应的是at后面接的数字
/www/server/data/mysql-bin.000010
该二进制文件的具体位置/xiaochengxu_ks.sql
通过二进制文件生成的sql
文件的位置
生成对应的sql文件在更目录下
在 MySQL 客户端命令行进入 xaiochengxu_ks 数据库,执行 source /xiaochengxu_ks.sql 恢复数据即可。
也可以设置起止点,但是我觉得没有必要,通过也可以通过时间区间的方式进行恢复
- 起始定位符
mysqlbinlog --start-position=249 binlog.000006 - 结束定位符
mysqlbinlog --stop-position=249 binlog.000006
总结
以前一直觉得网络安全不是很重要,那是因为没有发生在自己的身上,这几天让我感受到了它的无比重要,发誓以后要重视网络安全这方面,同时加强自身的实例,避免再次发生
边栏推荐
- Link sharing of STM32 development materials
- Eventbus source code analysis
- 新手如何入门学习PostgreSQL?
- C Primer Plus Chapter 14 (structure and other data forms)
- SuperSocket 1.6 创建一个简易的报文长度在头部的Socket服务器
- 学习光线跟踪一样的自3D表征Ego3RT
- How do novices get started and learn PostgreSQL?
- Slow database query optimization
- 【批处理DOS-CMD命令-汇总和小结】-查看或修改文件属性(ATTRIB),查看、修改文件关联类型(assoc、ftype)
- Service asynchronous communication
猜你喜欢
省市区三级坐标边界数据csv转JSON
城联优品入股浩柏国际进军国际资本市场,已完成第一步
[Batch dos - cmd Command - Summary and Summary] - String search, find, Filter Commands (FIND, findstr), differentiation and Analysis of Find and findstr
Summary of being a microservice R & D Engineer in the past year
Deep understanding of distributed cache design
5种不同的代码相似性检测,以及代码相似性检测的发展趋势
Data type of pytorch tensor
Tensorflow GPU installation
筑梦数字时代,城链科技战略峰会西安站顺利落幕
Lombok makes ⽤ @data and @builder's pit at the same time. Are you hit?
随机推荐
Part VI, STM32 pulse width modulation (PWM) programming
The printf function is realized through the serial port, and the serial port data reception is realized by interrupt
「笔记」折半搜索(Meet in the Middle)
Openjudge noi 1.7 08: character substitution
windows安装mysql8(5分钟)
深度学习简史(一)
Attention slam: a visual monocular slam that learns from human attention
第四篇,STM32中断控制编程
ESP Arduino (IV) PWM waveform control output
学习使用代码生成美观的接口文档!!!
How do novices get started and learn PostgreSQL?
[batch dos-cmd command - summary and summary] - string search, search, and filter commands (find, findstr), and the difference and discrimination between find and findstr
迈动互联中标北京人寿保险,助推客户提升品牌价值
paddlehub应用出现paddle包报错的问题
Installation of torch and torch vision in pytorch
OSPF configuration command of Huawei equipment
mysql: error while loading shared libraries: libtinfo. so. 5: cannot open shared object file: No such
UI控件Telerik UI for WinForms新主题——VS2022启发式主题
pytorch之数据类型tensor
Deep learning framework TF installation