- scp 在以前的版本中不会对所请求的文件的文件名做验证
- scp 拥有使用 shell 命令间接指明所需要的文件的特性,也因此难以对文件进行名称的验证(已经被移入到 -T 选项)
- 现阶段如果使用 -r 选项, scp 依然无法对接受的文件名进行验证
可能的攻击方式 🔗
你目前在目录 dir
下,该目录下有重要文件 foo
,你需要从远程的客户机 remote-host
上获取名为 bar
的文件,你使用命令 scp remote-host:/bar ./
将目标文件拷贝到自己主机,但是对方却向你发送了一个空的名为 foo
的文件,于是你原来的重要文件被覆盖。
https://unix.stackexchange.com/questions/571293/is-scp-unsafe-should-it-be-replaced-with-sftp