求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?

MySql 码拜 8年前 (2016-02-06) 1339次浏览
起因:数据库之前经常报错,改了max_allowed_packet之后过一段时间又恢复成1024(就是这个原因报错),然后在网上查了一下可能是被别人攻击了,按网上的方法打开了查询日志set GLOBAL general_log = on。
然后在 general_log 日志中看到如下信息:
图一(攻击者IP一):
求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?
图二(攻击者IP二):
求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?
图三(攻击者IP三,就是这个IP在下面改了max_allowed_packet=1024,原因是太长截图没截出来):
求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?
图四(MySQL的用户列表):
求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?
现在有如下几点疑问:
1、图一和图二和图三的SQL语句,大致是实现了什么功能?
2、root账户设置的是localhost(如图四),按理来说不能由远程IP连接,可是为什么图一和图二是用root账户连接的?
3、能否数据库密码泄露了?这种情况该怎么样预防?
还有一点疑问就是,网站并没有用到root账户及密码,那么这个攻击者是怎么用root账户登录的呢?
以上,讨教各位大神,不胜感激!求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?
解决方案

5

大致连服务器的密码都丢了

5

如楼上说的, 你还得确认下, 对方能否直接登录你服务器了….

10

你的权限表过于简单了。
图四这张表, 明白得让 任何地方的两个用户(一个server,一个xxxx)都可以读写任何数据库(包括mysql数据库),
一旦能读写mysql数据库,你的系统就没有安全 了。
黑客可能知道了server  的密码,从远程连入 大肆修改。
MYSQL涉及权限的表一共有5个,最重要的权限表,一个user, 一个db
一般是这样设置的
1、user表里 除了 root  localhost有全部权限外,其他 xxxx %一概没有权限,
2、要开通权限在 db 表里。
好好看一下 mysql 文档里权限 这章。

10

1、能用root登陆,说明肯定是连服务器了,需要确认服务器能否被可疑人登陆。
2、图一的sql向服务器写了dll文件,可以杀毒软件看下这个文件;
图二更新了一个表的数据,看看生产库有没有这个表?
图三创建了一个新用户,并且更新数据包的大小。
3、建议尽快修改服务器的用户密码

5

只要修改服务器的密码就可以了。修改mysql用户密码意义不大,实际上只要能登陆到服务器,通过修改mysql的my.cnf文件,不需要任何用户密码就能登陆mysql。
一句话,mysql的安全依赖于服务器的安全

5

引用 10 楼 snvlongquan 的回复:
Quote: 引用 9 楼 hl9902_hl 的回复:

只要修改服务器的密码就可以了。修改mysql用户密码意义不大,实际上只要能登陆到服务器,通过修改mysql的my.cnf文件,不需要任何用户密码就能登陆mysql。
一句话,mysql的安全依赖于服务器的安全

黑客能用root账户连接是原因是能直接登陆服务器吗?没有其他原因吗?
假如本人改了服务器密码,然后把那两个全局权限的xxxx %用户删除,应该就安全了吧?

至少 不会出现 图3 的攻击,有人用 server @% 修改了权限表。
web 连接数据库的用户,都不需要有全局修改权限,否则一旦脚本有漏洞,黑客可利用此漏动攻击
当然假如服务器被攻击,mysql 防范得再好也没用。

10

引用 8 楼 snvlongquan 的回复:
Quote: 引用 4 楼 trainee 的回复:

你的权限表过于简单了。
图四这张表, 明白得让 任何地方的两个用户(一个server,一个xxxx)都可以读写任何数据库(包括mysql数据库),
一旦能读写mysql数据库,你的系统就没有安全 了。
黑客可能知道了server  的密码,从远程连入 大肆修改。
MYSQL涉及权限的表一共有5个,最重要的权限表,一个user, 一个db
一般是这样设置的
1、user表里 除了 root  localhost有全部权限外,其他 xxxx %一概没有权限,
2、要开通权限在 db 表里。
好好看一下 mysql 文档里权限 这章。

只要关闭这两个用户的全局权限,就安全了吧?

并且修改下服务器的密码

5

引用 12 楼 u011575570 的回复:
Quote: 引用 8 楼 snvlongquan 的回复:
Quote: 引用 4 楼 trainee 的回复:

你的权限表过于简单了。
图四这张表, 明白得让 任何地方的两个用户(一个server,一个xxxx)都可以读写任何数据库(包括mysql数据库),
一旦能读写mysql数据库,你的系统就没有安全 了。
黑客可能知道了server  的密码,从远程连入 大肆修改。
MYSQL涉及权限的表一共有5个,最重要的权限表,一个user, 一个db
一般是这样设置的
1、user表里 除了 root  localhost有全部权限外,其他 xxxx %一概没有权限,
2、要开通权限在 db 表里。
好好看一下 mysql 文档里权限 这章。

只要关闭这两个用户的全局权限,就安全了吧?

并且修改下服务器的密码

注意使用最小权限

5

Access denied表示没有连上。

35

这确实表示黑客在暴力破解,那个max_allowed_packet自动被重置,你的截图里面已经很清楚了:也是被黑客破解之后,给你重置的。
主要的防护方法没有太好的办法,假如你的mysql数据库是允许全部远程访问,那就只能针对防火墙做3306端口的防护了。可以设置只允许某几个IP访问3306端口,这样子假如你的IP是变动的,也有点麻烦,要经常改。
不过找到原因就好了,比起麻烦,安全更重要。

5

dede 织梦的哦,是虚拟主机么?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助!MySQL数据库被攻击了(有图),请大家帮看看是什么原因?
喜欢 (0)
[1034331897@qq.com]
分享 (0)