文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页精文荟萃软件资讯 → win2k平台下mysql的默认设置的脆弱性

win2k平台下mysql的默认设置的脆弱性

时间:2004/10/7 18:20:00来源:本站整理作者:蓝点我要评论(0)

 写在前面:无事可做,生命被消耗,痛~~~啊,所以就写了,本文no原创,整理而成!
默认安装的mysql服务不安全因素涉及的内容有:
一.mysql默认的授权表
二.缺乏日志能力
三.my.ini文件泄露口令
四.服务默认被绑定全部的网络接口上
五.默认安装路径下的mysql目录权限
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一.mysql默认的授权表
由于mysql对身份验证是基于mysql这个数据库的,也叫授权表。所有的权限设置都在这里了。
我们只讨论最为重要的一个表 user表。它控制的是接受或拒绝连接。
先看一下
select host,user,password,Delete_priv  from user;
+-----------+------+------------------+-------------+
| host      | user | password         | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y           |
| %         | root |                  | Y           |
| localhost |      |                  | Y           |
| %         |      |                  | N           |
+-----------+------+------------------+-------------+
现在新的版本,安装完毕都会出现一个快速设置窗口,用于设置口令。
以上,就是user表里的内容(略了点)看看有什么问题?
我们知道mysql的验证方式是比较特殊的,它基于两个2个信息来进行的
1.从那里连接
2.用户名
第一条没什么问题,当然口令必须是安全的。
第二条从任何主机,以用户root,不需要口令都可以连接,权限为所有的权限。(注:这里的权限是全局权限)
第三条从本地主机,任何用户名(注:user为空白,不表示不需要用户名),不需要口令,都可以连接,所有的权限
第四条从任何主机,任何用户名,不需要口令,都可以连接,无任何权限。
可以看出,2\3\4都是不安全的,如何攻击这里就不说了,请参看资料文库。
如果你mysql只允许本地连接,删除host的%和user中的nul(表示空)
delete from user where host=‘%‘;
delete from host where user=‘‘;
最后的user表,看起来因该是这个样子
+-----------+------+------------------+-------------+
| host      | user | password         | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y           |
+-----------+------+------------------+-------------+
最后需要刷新授权表,使其立刻生效
flush privileges;
如果你的mysql需要被远程使用,需要为%段中的root帐号,加上一个安全的密码
update user set password=password(‘youpass‘) where host=‘%‘;
其中youpass,就是口令
mysql> select host,user,password,Delete_priv from user;
+-----------+------+------------------+-------------+
| host      | user | password         | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y           |
| %         | root | 77c590fa148bc9fb | Y           |
+-----------+------+------------------+-------------+
更好的做法是,对远程主机的连接,指定为特定的
修改host中的%为允许连接的主机,比如:
192.168.0.% 允许一个特定的子网
www.sandflee.net 允许一个特定的主机
帐号默认的名字也是担心的问题。有可能导致被暴力破解
update user set user=‘localadmin‘ where host=‘localhost‘;
update user set user=‘remoteadmin‘ where host=‘%‘;
最后的user表看起来像是这个样子
mysql> select host,user,password,Delete_priv from user;
+-----------+-------------+------------------+-------------+
| host      | user        | password         | Delete_priv |
+-----------+-------------+------------------+-------------+
| localhost | localadmin  | 67457e226a1a15bd | Y           |
| %         | remoteadmin | 77c590fa148bc9fb | Y           |
+-----------+-------------+------------------+-------------+
更为详细的资料,请去参考晏子的《MySQL中文参考手册》。随便那都有下
二.缺乏日志能力
mysql安装完成以后,会在%SystemRoot%目录下产生my.ini的设置文件
默认的内容如下:
——————————————————————————————
basedir=C:/mysql
#bind-address=192.168.0.1
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=root
password=root
———————————————————————————————
注意log#=这个
它没有被定义,且被注销掉了。
更改为一个适合的路径,比如:
log=c:/mysql/logs/mysql.log
三.my.ini文件泄露口令
我们看到my.ini最后,有这两句
user=root
password=root
如果,你安装完成时,使用了mysql所提供的快速设置功能,(较新的版本)你的帐号和口令将被写到my.ini文件中。
这也是mysql写到启动组里的winmysqladmin.exe工具,运行时需要读取的。它提供的mysql服务
的一些监视功能。这样winmysqladmin.exe才能获得mysql服务的状态信息。
其实,这个也不算漏洞,我们看看my.ini默认的权限,它可以被user组用户读取。
从而导致口令被泄露
解决方法:
从新设定my.ini文件的权限.
从新设定帐号及口令
不使用快速设置
四.服务默认被绑定全部的网络接口上
服务被绑定到了所有的网络接口上,比如,你只需要一个运行在内网的mysql服务,但是你的机器有
外网的接口,mysql也会被绑定上,从而带来一些不必要的麻烦和威胁。
在my.ini里的这句
#bind-address=192.168.0.1
它默认被注销掉了
应该打开它
如果,只是本地使用,更改为
bind-address=127.0.0.1
如果是其它情况,应该选者一个合适的网络接口
五.默认安装路径下的mysql目录权限
mysql默认的安装路径为c:\mysql,基本上都难得改,要改的话也是麻烦,还要去改my.ini。
但,这样就有个问题
通常c:\的权限是everyone组-所有的权限。这是默认的,由于继承性,导致mysql下的data目录
也是everyone组-所有的权限。导致被随意访问、读取、删除,可能泄露和破坏数据。
更改mysql目录到一个合适,安全的访问权限。
over...

相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本