网安引领时代,弥天点亮未来
1.众所周知,phpMailer是一个非常强大的php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。
2.但是如果开发编码不规范,可能会导致安全问题的出现,下面实例讲解在什么场景下会出现安全隐患。
3.例如eyoucms找回密码,点击发送的时候,会调用Smtpmail控制器的send_email方法
4. 然后又在send_email方法中调用了SmtpmailLogic.php文件中的send_email
5.最后在SmtpmailLogic.php最后又调用了send_email
6.然后又在common.php中send_email方法中实例化了EmailLogic,调用了其中的send_email方法
7.最后又来到了EmailLogic.php中send_email方法,默认发送邮件会调用phpmailer类
8.不规范的写法就在send_phpmailer中,例如下面这样,开发为了方便群发,把收件人以逗号进行分割,最后通过数组,通过addAddress方法,添加到收件人了。
9.知道这样,我们可以构造收件人[email protected],[email protected]
10.然后访问地址,会提示邮箱地址不存在
11.原因也很简单,因为找回密码type会等于retrieve_password去判断邮箱是否存在
12.但是type=bind_email的时候邮箱不存在是可以通过验证的,这个验证码也是可以用来找回密码的,构造链接访问url提示发送成功
13.由于是群发,两个邮箱可以收到同一个验证码
14.找回密码测试用[email protected]邮箱的验证去找回[email protected]的验证码
15.最后成功重置验证码
16.这个只是其中一个案例,不安全的编码会产生很可怕的安全隐患。
知识分享完了
喜欢别忘了关注我们哦~
学海浩茫,
弥 天
安全实验室
本文始发于微信公众号(弥天安全实验室):编码规范之phpmailer安全隐患
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论