Chinaunix首页 | 论坛 | 博客
  • 博客访问: 488084
  • 博文数量: 53
  • 博客积分: 492
  • 博客等级: 下士
  • 技术积分: 866
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-14 15:12
文章分类

全部博文(53)

文章存档

2016年(1)

2015年(3)

2014年(17)

2013年(9)

2012年(7)

2011年(16)

我的朋友

分类: 网络与安全

2011-12-13 10:08:04

1.汉字utf8编码识别

     utf8字符编码特征:

     1字节:0xxxxxxx

     2字节:110xxxxx 10xxxxxx

     3字节:1110xxxx 10xxxxxx 10xxxxxx  (汉字一般落在这个区间)

     4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

     5字节:111110 xx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx

     6字节:1111110x 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10xxxxxx

     一个汉字通常占3个字节,也就是以1110开头,十六进制表示是E,所以在抓到的数据包里,看到E开头的三字节,通常就是UTF8编码,这招屡试不爽啊!

      eg: 提交一段参数为“金城”的url, 截取到一段url的内容是 %e9%87%91%e5%9f%8e 

      %号是url编码,将所有的%号忽略掉,得到的就是汉字的编码。E9 87 91   E5 9F 8E

      随便找一个在线解码工具,解码之后果然是“金城”

2.utf16编码识别

    utf16编码跟ASCII编码不兼容,即ASCII ‘A’= 0x41;utf16 ‘A’ = 0x0041。故,当发现数据包内,ASCII字符前都有1个0字符在前面,而非ASCII没有,则可判断它是utf16编码。

    网页的utf16编码,一般以FE FF开始。

3.汉字的gbk编码识别

    这个比较简单,当发现数据包格式特征不符合utf8编码特征时,即可尝试用gbk解析。9成几率都是的。

    顺便说一句gb2312 gbk gb18030的关系,他们之间的关系可以用GB18030 > GBK > GB2312来表示,都是用来表示中文编码的,但是gb2312最残,gbk支持了繁体,gb18030不但支持繁体还支持东亚一些岛国和半岛国的文字。

4.base64编码识别

     合法的base64字符有:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/

     因此, 当发现数据包的内容都是这种字符,可以大胆尝试用base64解码验证。

     发送网易超大附件时,截取的一段数据包内容:

              

     发现filename 'dGVzdDEyNk1haWwudHh0' 很像base64编码,

     尝试解码一下,果然是

阅读(3649) | 评论(2) | 转发(2) |
给主人留下些什么吧!~~

businiaowyf2011-12-15 11:24:20

泥亚鳅: 挺简单的啊~~.....
书都是越看越薄

泥亚鳅2011-12-15 02:56:38

挺简单的啊~~