SQL Server在1433端口传输的数据大部分是明文的,这包括IP地址,连接用户名,成功和失败消息
这样一来,就很容易使用嗅探器嗅探在这个网段内SQL Server的相关信息,得到用户名和IP后,就
差口令了,其实SQL的口令加密是十分脆弱的,昨天我用了半小时,整理了一份口令字符对照表,在
分析SQL Server加密口令的时候,同时发现了SQL Server一个不大不小的BUG----如果你用";"做口令
将导致口令失效,原因是SQL Server的口令对照表中,没有这个字符,当SQL Server遇到这个口令字
符的时候,就会主动放弃这个字符,这样一来,口令长度将与实际长度不符,当你下次连接1433的时
候,这个字符就无法被系统识别出来,从而报告口令错误。
口令对照表的用法:
1.用16进制编辑器打开你Sniff到的东西,然后找到SQL Server连接的用户名,从用户名开始后面的第
一个0x5a - 1的位置就是口令的第一位,每一位口令均以0x5a分隔开来,口令字的变换请对照口令字符
对照表:
a 0xb3 b 0x83 c 0x93 d 0xe3 e 0xf3 f 0xc3 g 0xd3 h 0x23 i 0x33 j 0x03 k 0x13 l 0x63 m 0x73 n 0x43 o 0x53 p 0xa2 q 0xb2 r 0x82 s 0x92 t 0xe2 u 0xf2 v 0xc2 w 0xd2 x 0x22 y 0x32 z 0x02 1 0xb6 2 0x86 3 0x96 4 0xe6 5 0xf6 6 0xc6 7 0xd6 8 0x26 9 0x36 0 0xa6 - 0x77 = 0x76 \ 0x60 [ 0x10 ] 0x70 ' 0xd7 , 0x67 . 0x47 / 0x57 ` 0xa3 ! 0xb7 @ 0xa1 # 0x97 $ 0xe7 % 0xf7 ^ 0x40 & 0xc7 * 0x07 ( 0x27 ) 0x37 A 0xb1 B 0x81 C 0x91 D 0xe1 E 0xf1 F 0xc1 G 0xd1 H 0x21 I 0x31 J 0x01 K 0x11 L 0x61 M 0x71 N 0x41 O 0x51 P 0xa0 Q 0xb0 R 0x80 S 0x90 T 0xe0 U 0xf0 V 0xc0 W 0xd0 X 0x20 Y 0x30 Z 0x00 _ 0x50 + 0x17 | 0x62 { 0x12 } 0x72 : 0x06 " 0x87 < 0x66 > 0x46 ? 0x56 ~ 0x42 ; 不存在
|