如何利用注射技术攻击邮件服务器
来源:51CTO 发布时间:2008-08-12 11:29:00
本文将详细介绍通过跟邮件服务器通信的Web应用程序,即webmail应用来注入某些邮件协议(IMAP和SMTP协议)命令来攻击邮件服务器的原理、方法和防御措施。
一、Webmail应用程序的角色
Webmail应用程序通过IMAP和SMTP协议来管理用户和他们的电子邮件之间的交互。从这一点来说,Webmail应用充当了客户应用程序和邮件服务器之间的代理角色。这个交互过程首先通过webmail应用程序来发送用户的身份凭证(注册号和口令)。此时,如果IMAP服务器支持使用“login”认证方式的话,那么Webmail应用程序会向IMAP服务器发送如下所示的命令:
AUTH LOGIN
同样,这个应用程序还会将用户的各种动作(如访问邮箱、发送/删除电子邮件、退出邮箱等)转换成相应的IMAP和SMTP命令,然后把这些命令发送给相应的邮件服务器。然而,webmail应用程序的功能有限,所以用户只能生成该应用程序定义的选项所对应的那些IMAP或者SMTP命令。但是,用户却有可能改变被发送给邮件服务器的那些IMAP和SMTP命令。
下面,就让我们来看一下这种技术的工作原理吧!
二、邮件服务器注射技术原理
与广为人知的诸如SQL注射、LDAP注射、SSI注射、XPath注射、CRLF注射等注射技术类似,邮件服务器注射技术也是通过一个对用户提供的数据没有严格检查的webmail应用程序将IMAP命令或者SMTP命令注射到邮件服务器。当通过webmail应用程序使用的后台邮件服务器无法直接经由Internet访问时,邮件服务器注射技术格外有用。
要向邮件服务器注入命令,前提条件是允许用户通过webmail应用程序访问其端口25(SMTP)和143(IMAP)。
邮件服务器注射来利用一个应用程序的攻击者来说,他们相当于直接访问了被防火墙隔离的原始电子邮件服务端口(即绕过了防火墙)。通过利用这种技术,攻击者可以进行各式各样的活动和攻击,至于到底能做哪些事情,这要取决于被注入命令的服务器的类型。之所以这样说,是因为Webmail应用会把来自用户的请求转换成各种IMAP和SMTP协议命令。下面介绍如何利用这两种协议。
在进行IMAP注射时,注入的命令最终是由IMAP服务器执行的,所以命令必须遵循这个协议的格式和规范。Webmail应用程序为了完成客户请求的操作,必须跟IMAP服务器进行通信,这正是它们容易遭受这种攻击的原因。在用户验证身份的时候,webmail应用程序将用户的凭证传送到IMAP服务器,因此,利用IMAP服务器的验证机制,无需在该应用程序中具有一个有效帐户就能够进行IMAP注射。注入IMAP命令之前,用户必须找出跟邮件服务器通信时所用的所有参数,并弄清楚这些参数跟应用程序的功能的关系,如:
◆认证/登录/退出
◆邮箱操作(显示、阅读、创建、删除、重命名)
◆消息操作(阅读、复制、移动、删除)
现在让我们看一个利用消息阅读功能来进行IMAP注射的例子。假定webmail应用程序使用参数“message_id”来存放用户想要阅读的消息的标识符。当一个包含消息标识符的请求发出时,该请求看起来像下面的样子:
http:///read_email.php?message_id=
假如网页“read_email.php”负责显示有关消息,它直接把请求发给IMAP服务器,而不对用户提供的值做任何检验。这时发给邮件服务器的命令将是下面的样子:
FETCH BODY[HEADER]
在这种情况下,我们就可以通过应用程序用来与邮件服务器通信的参数“message_id”来发动IMAP注射攻击。例如,可以利用下列命令来注入IMAP命令“CAPABILITY”:
http:///read_email.php?message_id=1 BODY[HEADER]%0d%0aZ900 CAPABILITY%0d%0aZ901 FETCH 1
这将导致服务器执行下列IMAP命令:
FETCH 1 BODY[HEADER]
Z900 CAPABILITY
Z901 FETCH 1 BODY[HEADER]
所以该服务器返回的页面显示的是在IMAP服务器中的“CAPABILITY”命令的结果:
* CAPABILITY IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES
SORT QUOTA ACL ACL2=UNION
Z900 OK CAPABILITY completed
三、SMTP注射
这里,我们要向SMTP服务器注射命令,所以注入的命令必须遵循SMTP协议。由于这些活动是使用SMTP协议的应用程序所允许的,所以我们基本上就是去模仿发送电子邮件。要利用SMTP注射,用户必须事先通过认证,所以用户必须有一个有效的webmail帐户。
通过SMTP发送电子邮件消息的格式如下:
◆发送方的e-mail地址
◆接收方的e-mail地址
◆主题
◆消息主体
◆附件
下面是一个通过存放消息主题的参数来进行SMTP注射的例子。
如前所述,这种技术的使用要求用户是经过认证的,并且可以针对发送电子邮件时的webmail参数进行SMTP命令注射。一般的,webmail应用程序会提供给用户一个表单,用户必须在表单中提供必要信息,这些信息将被发送给负责创建发送电子邮件所必需的原始SMTP命令的资源。
发送电子邮件的请求一般如下所示:
POST http:///compose.php HTTP/1.1
...
-----------------------------134475172700422922879687252
Content-Disposition: form-data; name="subject"
SMTP Injection Example
-----------------------------134475172700422922879687252
...
这将导致SMTP服务器执行下列命令:
MAIL FROM:
RCPT TO:
DATA
Subject: SMTP Injection Example
...
如果webmail应用程序没有对参数“subject”中的值进行必要的验证,那么攻击者可以在其中注入额外的SMTP命令:
POST http:///compose.php HTTP/1.1
...
-----------------------------134475172700422922879687252
Content-Disposition: form-data; name="subject"
SMTP Injection Example
.
MAIL FROM: notexist@external.com
RCPT TO: user@domain.com
DATA
Email data
.
-----------------------------134475172700422922879687252
...
上面注入的命令将生成一个将被发送给邮件服务器的SMTP命令序列,其中包含MAIL FROM、RCPT TO和DATA等命令,如下所示:
MAIL FROM:
RCPT TO:
DATA
Subject: SMTP Injection Example
.
MAIL FROM: notexist@external.com
RCPT TO: user@domain.com
DATA
Email data
.
...
猜你喜欢
- 备受业界关注的新浪分众合并案最终以失败告终。9月28日,新浪与分众传媒同时宣布,将不再延长去年十二月宣布的新浪与分众传媒合并交易的截止日。此
- 写这篇的动力源于上一篇中反复出现的robots,它让我想起了spider(蜘蛛)与crawler(爬虫)。此二者一样?不一样?以前就看过一篇
- Google Adwords [ ¥200.00 /天 ] 2,307 3,040,019 0.07% ¥0
- 问题一:百度如何看待伪原创?答:“伪原创”就是“非原创”。对非原创的策略,同样适用于伪原创。归根结底,这是一个技术实现程度问题,而不是策略思
- 域名的概念与机制1. 介绍本文主要介绍域名(DNS)的一些机制及实现方法,下面我们就具体看一下它的情况。1.1. 域名的历史产生域名的的根本
- 碰到CC攻击请把下面的代码放做成conn.asp,原理大家可以自己研究<% DimfsoObject DimtsObject dimf
- 2008年1月8日消息:“2007年度中国互联网市场数据发布会”今天在北京举行。在会上刚刚揭晓的《Netguide2008中国互联网调查报告
- QQ农场VS开心农场,“偷菜”是否影响你的学习,工作?你有什么样的感想?我们先看看QQ强大变现力。即QQ空间游戏的变现能力,也许又强大到很多
- 第 1 步:选择推介区域 选择特定广告前,您需要指定国家/地区和语言首选项。为了最大限度地增加转换机会,请选择能充分反映用户情况的组合。有些
- #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotte
- 网站优化设计是从网站的基本方向入手,着重网站的设计重点,达到完美设计网站的特点,宗诉这就叫网站优化设计,侯庆龙就总结了以下需要注意的地方,希
- 【教程适用于独立主机或者虚拟主机】一、后台→ 全局 → 关闭站点(为了不影响数据库备份)转移开始第一步:备份整站数据并上传到新空间第二步:备
- 一年一度的圣诞节又到了,asp之家为大家选了一些圣诞节的手机祝福短信,大家可以挑选一些发送给你的亲朋好友,给他们送上一个圣诞节的祝福!圣诞乐
- 今天来介绍Godaddy主机用户该如何设置301重定向,这个问题很重要的,一定要认真看哦~假如你重新设计了网站上的任何网页,但还想维持目前搜
- 这博客也好久没有来写文章了!因为把网站的新闻交给了别人来做,我每天都把主要精力放在了探搜“搜索引擎的排名&rdq
- 网络赚钱总是有人发帖子,有人就跟风做,但是往往是自己得到的信息,是已经不能用的,永远跟着别人擦屁股,所以看到的现象要学会思考,思考相同的模式
- 相信这个问题近两天大家都遇到了吧,DZ官方说是js的冲突造成了,无从考究了,找到了一个解决方法:修改论坛目录下 includejscommo
- 今天来介绍Godaddy主机用户使用Microsoft Publisher 2007 (Vista)上传站点,在你上传内容至你的网站前,需准
- 昨日微软Bing搜索引擎团队在官方博客中发表博文为Dr. Richard Bing庆祝100岁生日,这位百岁老人在不久之前还和微软没有任何关
- 从去年七、八月开始,拒绝服务攻击在网上风行一时,一年后的现在又有抬头之势。那么我们除了用防堵软件外,是否还有其它办法呢?服务过载当大量服务请