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 ; 不存在
|