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
(北联网教程,专业提供视频软件下载)
……