bWAPP----Mail Header Injection (SMTP)

Mail Header Injection (SMTP)

本地没有搭环境,没法演示,附上转载的

https://www.acunetix.com/blog/articles/email-header-injection/

什么是电子邮件标题注入?

发表于 2017年5月3日伊恩·马斯喀特

通常的做法是网站实施联系表单,反过来将合法用户的电子邮件发送给消息的预期收件人。大多数情况下,这样的联系表单将设置SMTP标头FromReply-to以便让收件人轻松处理联系表单中的通信,就像其他电子邮件一样。

不幸的是,除非用户的输入在插入SMTP头之前被验证,否则联系表单可能容易受到电子邮件头插入(也称为SMTP头注入)的攻击。这是因为攻击者可以将额外的头部注入到消息中,从而指示SMTP服务器执行与预期不同的指令。

以下PHP代码是一种易受电子邮件头部注入攻击的典型联系人表单的示例。以下代码将由网站访问者提供的名称和电子邮件地址,并准备电子邮件的标题列表。

使用From标题,以便电子邮件的收件人(在本示例中为root @ localhost)将知道电子邮件作者是谁。回复标题允许电子邮件的收件人通过他们的电子邮件客户端中的回复按钮回复发送电子邮件的人。

<?php
if(isset($_POST[‘name‘]))
{
$name = $_POST[‘name‘];
$replyto = $_POST[‘replyTo‘];
$message = $_POST[‘message‘];

$to = ‘[email protected]‘;
$subject = ‘My Subject‘;

// Set SMTP headers
$headers = "From: $name \n" .
"Reply-To: $replyto";

mail($to, $subject, $message, $headers);
}
?>

典型的正版POST请求如下。

POST /contact.php HTTP/1.1
Host: www.example.com

name=Joe Bloggs&[email protected]&message=Example message

攻击者可以通过发送以下POST请求来滥用此联系表单。

POST /contact.php HTTP/1.1
Host: www.example.com

name=Attacker\nbcc: [email protected]&[email protected]&message=Attacker message

在此示例中,攻击者正在插入换行符(\n\r\nWindows系统上的大多数UNIX和Linux系统上),并附加一个包含附加电子邮件地址的密码SMTP标头,SMTP服务器将向BCC发送电子邮件。

攻击者可以使用这样的策略匿名发送大量消息,甚至发送网络钓鱼电子邮件,其中接收者认为这些消息源自可信来源。还值得注意的是,此漏洞不限于PHP; 它可能会影响任何基于任意用户输入发送电子邮件的应用程序。

检测电子邮件头部注入漏洞

为了自动检测电子邮件头部注入,我们需要依赖中介服务,因为检测到这样一个漏洞需要带外和时间延迟的向量。Acunetix 在自动扫描期间通过使用AcuMonitor作为其中介服务来解决此问题。

在扫描期间,Acunetix将找到联系表单,并注入指向AcuMonitor电子邮件地址的自定义BCC SMTP标头。如果有问题的应用程序导致SMTP服务器发送电子邮件到AcuMonitor,那么AcuMonitor知道它是易受攻击的,它会发送一个通知回到Acunetix,表明它应该提高电子邮件头插入警报。

减轻

减少电子邮件标题注入涉及验证用户输入,不允许输入中的任何换行符,这将导致添加另一个SMTP标头。一般来说,当验证用户输入时,实现强输入验证的最简单和最强劲的方法是通过白名单中允许的字符用于SMTP标头。

分享这篇文章
时间: 2024-11-08 13:31:31

bWAPP----Mail Header Injection (SMTP)的相关文章

linux使用mail发送外部smtp邮件

linux使用mail发送外部smtp邮件 第一章 说明 参考资料: http://coolnull.com/2614.html linux自带的mail可以实现外部smtp发邮件.不需要本地配置postfix,sendmail邮件服务器,配置整套下来确实需要点时间. 环境: IP 主机名 操作系统 备注 192.168.120.130 db130 CentOS release 6.10 (Final)   第二章 实现 2.1 关闭本机的sendmail服务或者postfix service

Install CDONTS mail component and SMTP on Windows Server 2008

原文地址:http://www.jppinto.com/2009/03/install-cdonts-mail-component-and-smtp-on-windows-server-2008/ CDONTS is mail component used to send messages from an ASP page. Instead of recoding multiple web sites I have created, I am just going to install the

【sqli-labs】 less18 POST - Header Injection - Uagent field - Error based (基于错误的用户代理,头部POST注入)

这次username和password都进行了输入校验 但是ip和uagent没有校验 当我们用admin admin登陆成功后,就会一条插入语句 由于程序无条件的信任了浏览器的header信息,那么通过修改http包的header信息构造注入 使用burpsuite进行包拦截/修改 修改user-agent字段,加个单引号 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'

Less(19)POST - Header Injection - Referer field - Error based (基于头部的Referer POST报错注入)

1.单引号,报错型,referer型注入点: 本题和上一题很像,回显是referer,查一下php文加可以发现,insert语句中向数据库插入了referer,所以注入点改为referer 2.爆破 (1)Referer: ' and extractvalue(1,concat(0x7e,(select version()),0x7e)) and ' 发现没问题 (2)爆库:' and extractvalue(1,concat(0x7e,(select database()),0x7e)) a

前端学HTTP之web攻击技术

前面的话 简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标.本文将详细介绍攻击web站点的手段 总括 与最初的设计相比,现今的Web网站应用的HTTP协议的使用方式已发生了翻天覆地的变化.几乎现今所有的Web网站都会使用会话(session)管理.加密处理等安全性方面的功能,而HTTP协议内并不具备这些功能 从整体上看,HTTP就是一个通用的单纯协议机制.因此它具备较多优势,但是在安全

读《图解HTTP》总结--第十一章

Web的攻击技术 互联网上的攻击大都将Web站点作为目标.本篇讲解具体有哪些攻击Web站点的手段,以及这些攻击会造成怎样的影响. 11.1 针对Web的攻击技术 简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击的目标.目前,来自互联网的攻击大多是冲着Web站点来的,他们大多把Web应用作为攻击目标.下面主要讲述针对Web应用的攻击技术. 11.1.1 HTTP不具备必要的安全功能 与最初的

.Net Mail SMTP 发送网络邮件

刚刚迈入"开发"的行列 一直有一个想法 我什么时候能给我庞大的用户信息数据库给每一位用户邮箱发送推荐信息呢? 刚迈入"编程两个月的时间" 我采用 SMTP 发送网络邮件 ,先上常用的邮件服务器 在上代码 /**********************************这里是邮件服务器名 POP3 协议使用POP地址 SMTP 使用SMTP*****************************************/ gmail(google.com) P

Drupal 7 电子邮件的发送设置 SMTP, Mail System, Mime Mail

虽然Drupal自带发送email功能,但是很多服务器需要SMTP验证,这个时候就需要安装 SMTP 模块. 激活 SMTP 模块 进入配置 admin/config/system/smtp 在 Turn this module on or off  选择 on 填写 SMTP SERVER SETTINGS 中相关信息 (如果你的服务器在godaddy,只要在 SMTP server 填写 relay-hosting.secureserver.net 就可以.其他都用默认配置) 你可以在 SE

How to Send an Email Using UTL_SMTP with Authenticated Mail Server. (文档 ID 885522.1)

APPLIES TO: PL/SQL - Version 9.2.0.1 to 12.1.0.1 [Release 9.2 to 12.1]Information in this document applies to any platform.***Checked for relevance on 07-Apr-2014*** GOAL The UTL_SMTP package is designed for sending electronic mails (emails) over Sim