当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2011-01312

漏洞标题:微软IE浏览器字符集判别缺陷+不严谨的json使用=通用xss

相关厂商:微软Ie浏览器和其他技术

漏洞作者: xsser

提交时间:2011-02-13 19:34

修复时间:2011-02-13 19:35

公开时间:2011-02-13 19:35

漏洞类型:设计错误/逻辑缺陷

危害等级:中

自评Rank:10

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-02-13: 积极联系厂商并且等待厂商认领中,细节不对外公开
2011-02-13: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

微软浏览器在解析网页等内容时,判断字符集的方式上存在问题,根据RFC标准上应该header头设置优先于本地的meta和bom等其他方式识别出的字符集,但是微软ie会忽略掉其他设置的字符集而以Bom判断出的字符集优先;一般字符集都不会有什么问题,但是因为utf7的特殊性,他的Bom为+/v8等,完全是合法字符,所以一旦使用utf-7字符集的时候就可能导致一些基于文本过滤的规则失效,譬如典型的过滤<>"等等;由于bom的特殊性,他要求在文件的头几个字节,所以应用空间比较有限,目前被安全人员披露的独立存储css时导致的问题,应用如百度空间等,以及被广泛使用的json,json的callback一般都是处于返回请求的头几个字节,json被广泛使用并且能够被控制callback而没有白名单限制的不在少数,本来json也不会导致严重的安全问题,但是国内互联网厂商在技术严谨方面比较缺乏,http协议里的Content-Type决定了ie处理内容的方式,本来按照规范,json的返回头应该设置为Content-Type: text/javascript;,这样ie在处理这个请求的时候就会知道这是个json请求,而不会去做其他的解析,但是在国内的厂商里头,大家基本无视该选项,而一般都是默认设置为Content-Type: text/html,于是导致大量的xss。

详细说明:

利用条件和测试方式
条件

1 json没有严格设置标准的json头,而是使用的type/html的content-type头
2 能够控制callback参数


具体参考

1 搜索Paper <<XSS Lightsabre techniques>> [最原始的引起注意的utf-7的利用]
2 http://seclists.org/fulldisclosure/2011/Feb/199 [utf-7 json注射利用]
3 http://hi.baidu.com/linx2008/blog/item/3655ba99309de11b6f068c46.html[可以看到广大群众关于此问题的讨论]
4 http://www.worldlingo.com/ma/enwiki/zh_tw/Byte-order_mark [bom字符集]

漏洞证明:

修复方案:

1 微软修复charset的识别方式 = = 可能性不知道大不大
2 各厂商在使用json的时候,在基础框架里严格设置好json头

版权声明:转载请注明来源 xsser@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:18 (WooYun评价)