TL; DR;
最近(大约从1983年开始),事实证明,作为rsh的后继产品,OpenSSH作为scp(例如Rcp)命令的使用,允许
服务器选择要传输给您的文件和参数。 通过输出漏洞,您可以隐藏将哪个文件传输给您。
也就是说,您询问file.txt,但您却得到了-exploit.bin
到目前为止,还没有修复程序。 使用sftp或rsync。
详细资料
CVE-2019-6109
scp客户端不检查文件名中是否包含多余的字符,这使您可以隐藏传输文件的真实名称(例如ASCII码)
CVE-2019-6110
scp客户端允许您写入stderr并在终端中重写数据,从而可以隐藏传输文件的真实名称(例如ASCII码)。
CVE-2019-6111
scp客户端不会检查发送给它的文件,也不会将其与请求的文件进行比较。 恶意服务器可以用任何方式填充客户端所需的一切。
工作实例
$ rm -rf * $ ls -la 36 drwxr-xr-x 2 user user 4096 25 15:11 . drwx------ 99 user user 28672 25 14:23 .. $ scp test@localhost:x.txt . x.txt 100% 32 0.3KB/s 00:00 $ ./exploit.sh # ?! You're hacked. Sorry for that Please upgrade your OpenSSH client $
在此示例中(对上面的链接进行了稍微修改),x.txt加载了权限为755的exploit.sh文件,并在垃圾的帮助下清除了传输事实。
弱势客户
简而言之,仅此而已。 OpenSSH包括7.9p1,putty,winscp <5.13。
仅WinSCP具有修复程序(5.14+)
使用不受信任的服务器时,请使用sftp / rsync。