PHP imap 远程命令执行漏洞(CVE-2018-19518)
php imap扩展用于在PHP中执行邮件收发操作。其imap_open
函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。
因为ssh命令中可以通过设置-oProxyCommand=
来调用第三方命令,攻击者通过注入注入这个参数,最终将导致命令执行漏洞。
参考链接:
- https://bugs.php.net/bug.php?id=77153
- https://github.com/Bo0oM/PHP_imap_open_exploit
- https://antichat.com/threads/463395/#post-4254681
- https://nvd.nist.gov/vuln/detail/CVE-2018-19518
漏洞复现
环境启动后,访问http://192.168.44.132:8080
即可查看web页面。Web功能是测试一个邮件服务器是否能够成功连接,需要填写服务器地址、用户名和密码。
目标源码在index.php
发送如下数据包即可成功执行命令echo '1234567890'>/tmp/test0001
:
1 | POST / HTTP/1.1 |
执行docker-compose exec web bash
进入容器,可见/tmp/test0001
已成功创建: