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
; 不存在
以上文章是珍藏的东西。希望能对你在hacking有帮助
