邮箱解析

发布时间:2018-06-27 03:09:45   来源:文档文库   
字号:

2.4.2 QQ邮箱协议分析与实现

协议分析过程如下:

分析post头:利用wirshark抓取的QQ邮箱的数据流,其中hostoriginreferer这三项中都带有qq.com,以此判断是何种邮箱;唯一的URL是区分发送邮件流与上传附件流的条件依据。

分析message-body:发送邮件流,其中正文等信息都在message-body里,直接提取即可;上传附件流,windows系统下,属于小附件时,是单会话单post,在message-body中前364个字节是乱码后边是以明文显示,属于大附件时,是单会话多post,在message-body中前364个字节是乱码后边是以明文显示,网盘上传附件时,是mime格式传递的。Linux系统下,小附件的情况,是单会话单post,在message-body中是以明文显示。大附件的情况,是多会话多post,在message-body中是以明文显示。网盘上传附件,是单会话多post,在message-body中前364个字节是乱码后边是以明文显示。

具体实现如下:

1)判断协议:首先利用字符串匹配判断数据流的邮箱类型,是163yeah还是126邮箱,然后利用字符串匹配和正则表达式匹配判断URL是发送邮件流还是上传附件流。

2)提取协议内容:先采用pcre类库的正则表达式技术提取数据流中的发件人、收件人、正文、主题、发送时间,再分别将提取的信息URL解码,并上报。

3)提取协议文件: windows系统下①小附件情况,直接将message-body除了前364位乱码的字符串以uuid的形式存到文件里。②大附件的情况,首先将message-body除了前364位乱码的字符串以通过四元组产生哈希值为文件名存储,利用乱码判断是最后一个数据包,文件大小存到链表里,并将文件名改为uuid的形式,并上报。③网盘上传附件,利用正则表达式匹配提取文件名,利用sundy算法提取文件内容。

2-4 QQ邮箱协议分析流程图

Linux系统下,①小附件的情况,直接将message-bodyuuid的形式存到文件里。②大附件的情况,首先将message-body以通过四元组产生哈希值为文件名存储,然后用提取的偏移量加content-length判断是否等于提取的附件大小,如果等于将提取与文件大小存到链表里,并将文件名改为uuid的形式,并上报。③网盘上传附件,利用正则表达式匹配提取文件名,利用sundy算法提取文件内容。

4)上报结果:主要采用jansson类库的技术,以jansson串的形式上报。处理QQ邮箱的流程图,如图2-4所示。

2.4.3通过MIME格式发送邮件的邮箱协议分析与实现

协议分析如下:

MIME格式为数据流的邮箱有:新浪、中国石油、21cn、央视网、tom189邮箱。

分析post头:利用wirshark抓取的新浪、中国石油、21cn、央视网、tom邮箱的数据流,其中hostoriginreferer这三项中分别都带有sina.comsina.cncnpc.com21cn.comcntv.comtom.com189.cn,以此判断是何种邮箱;唯一的URL是区分发送邮件流与上传附件流的条件依据。

分析message-body:发送邮件流,其中新浪、21cn、央视网邮箱分别以mime格式传递的,而中国石油、tom189邮箱是整个的message –body传递的。上传附件流,都是mime格式的,开头和结尾都是boundary形式,并有文件名。

实现:

1)判断协议:首先利用字符串匹配判断数据流的邮箱类型,然后利用字符串匹配和正则表达式匹配判断URL先判断是发送邮件流不是的话,再判断是上传附件流。

2)提取协议内容:先采用pcre类库的正则表达式技术提取数据流中的发件人、收件人、正文、主题、发送时间,再分别将提取的信息URL解码,并上报。

3)提取协议文件:利用正则表达式匹配提取文件名,利用sundy算法提取文件内容以及文件大小。

4)上报结果:主要采用jansson类库的技术,以jansson串的形式上报。处理简易通过MIME格式发送邮件的邮箱流程图,如图2-5所示。

2-5 通过MIME格式发送邮件的邮箱协议分析流程图

2.4.4搜狐邮箱协议分析与实现

协议分析过程如下:

搜狐邮箱主要包括:搜狐邮箱、搜狗邮箱、chinaren邮箱。

分析post头:利用wirshark抓取的搜狐邮箱的数据流,其中hostoriginreferer这三项中分别都带有sohu.comsogou.comchinaren.com,以此判断是何种邮箱;唯一的URL是区分发送邮件流与上传附件流的条件依据。

分析message-body:发送邮件内容的POST流,是通过message –body实体传递的,而上传普通附件流,是通过mime格式传递。实体的开头和结尾均为boundary形式,并且有文件名等信息。最后,批量上传到搜狐U盘的数据流,是经过多会话发送的,并且其中不涉及加密。

2-6搜狐邮箱的协议分析流程图

具体实现如下:

1)判断协议:首先利用字符串匹配判断数据流的邮箱类型,然后利用字符串匹配和正则表达式匹配判断URL是否是上传附件流,不是的话,再判断是否是发送邮件流,再不是的话,再判断是否为上传到搜狐u盘数据流。

2)提取协议内容:先采用pcre类库的正则表达式技术提取数据流中的发件人、收件人、正文、主题、发送时间,再分别将提取的信息URL解码,并上报。

3)提取协议文件:对于普通附件数据流,利用正则表达式匹配提取文件名,利用sundy算法提取文件内容以及文件大小;上传到搜狐U盘的数据流,首先将message-body通过四元组产生哈希值为文件名存储,然后用提取的偏移量加content-length判断是否等于提取的附件大小,如果等于将提取文件大小存到链表里,并将文件名改为uuid的形式,并上报。

4)上报结果:主要采用jansson类库的技术,以jansson串的形式上报。

搜狐邮箱协议分析流程图如图2-6所示。

本文来源:https://www.2haoxitong.net/k/doc/6b1c3ee7dd36a32d7275816f.html

《邮箱解析.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式