漏洞详细
PHPMailer在发送邮件的过程中,会在邮件内容中寻找图片标签,即<img>
,并将其src属性的值提取出来作为附件。
所以,如果我们能控制部分邮件内容,可以利用将文件/etc/passwd作为附件读取出来。
原理参考:https://www.seebug.org/vuldb/ssvid-92617
影响范围
PHPMailer < 5.2.21
漏洞复现
我环境启动不了,但是我会根据vulhub的实战文章讲讲。
在“意见反馈”页面,正常用户填写昵称、邮箱、意见提交,后端会返回一个邮件提示意见填写完成。
我们可以在填写意见处插入恶意代码<img src="/etc/passwd">
,后端返回邮件时就会带上passwd
文件内容
那如果在不会返回提示邮件的服务里怎么操作呢?难道就没用了吗?
当然,我们可以在该服务创建多个邮件账号,然后自己给自己另一个账号发送恶意代码,这样就能够读取服务器的文件。