漏洞概要
关注数(24)
关注此漏洞
漏洞标题:新浪邮箱正文存储型XSS,空字节不仅能上传,还能跨站
相关厂商:新浪
提交时间:2012-05-17 15:14
修复时间:2012-07-01 15:15
公开时间:2012-07-01 15:15
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2012-05-17: 细节已通知厂商并且等待厂商处理中
2012-05-17: 厂商已经确认,细节仅向厂商公开
2012-05-27: 细节向核心白帽子及相关领域专家公开
2012-06-06: 细节向普通白帽子公开
2012-06-16: 细节向实习白帽子公开
2012-07-01: 细节向公众公开
简要描述:
说到00这个东西,大家最熟悉的应该是上传截断,%00之类的。
00 通常表示字符串结束, 在C里是\0, JS里通常写为\u0000。
关于\0在XSS的应用,好像不算是很多吧,比较有名的 xss list(http://ha.ckers.org/xss.html)里对此也只有几个比较古老版本浏览器(IE6,NS啥的)的应用。
这里我发现在IE7,IE9 (没IE8的机器)中都可以使用\u0000来绕过一些正则,此外本文还发现另外一个特殊的字符,可以绕过某些正则的过滤。在详细说明中会提到。
这里我就用这个技巧,绕过了新浪邮箱里的过滤,成功实现XSS。
PS:感谢粽子同学对此测试的帮助。
详细说明:
1. 其实这个过程是最基本的思路,写入以下HTML内容
<img src='http://www.wooyun.org/logo/CNVDlogo.jpg' onload='alert(1)'>
2. 不出意外, onload='alert(1)'被过滤掉了。
3. 继续测试过滤方式,输入以下代码
<img src='http://www.wooyun.org/logo/CNVDlogo.jpg' onload/='alert(1)'>
4. 看输出 onload\/='alert(1)' 这个可以说明:
新浪不是直接replace掉 onload之类的字符,
5. 经过测试onload空白符=alert('1') 一样会被过滤,可以推出:
大概的正则是 onload\s+=任意连续字符 被过滤为空
6. 根据以上测试结果,我们可以构建一个挑战性的模型如下:
onload某个不是空白的字符=alert('1')
7. 构建一个测试页面: 见(http://xssreport.sinaapp.com/toolmao.com/sinamail.htm)
测试内容主要为 <img src=图片 onload某个字符=alert(某个字符ASCII) />
如果弹出了某个字符,就说明这个字符加在onload后面不影响onload=alert()的运行
8. 测试结果中比较意外的有2个,IE9支持0, IE7和IE9都支持11:
浏览器 onload*=alert 测试结果
IE9: 0,32,13,12,11,10,9
IE8: 没机器测试
IE7: 32,13,12,11,10,9,
FF: 32,13,10,9
Chrome:32,9,13,10,12
10. 除了0之外, 这个11 (16进制\u000b)确实挺陌生的,9,10,12,13,都是相对常见的。
11. 既然如此,我们测试 \u0000 ,和 \u000b
12. 由于抓包工具,没办法比较直接的发送这类字符,自己写了个工具发送了一下。
POST的内容大概如下,这里只列出最关键的msgtxt字段:
13. 由于\u0000仅在IE9下有效,这里我用\u000b绕过。 效果见漏洞证明!
14. 这里还得说一下,\u0000 甚至可以写为
xxx.innerHTML="<img on\u0000load='alert(1)'>" 一样可以运行~
漏洞证明:
测试分别在WIN7+IE9, vista+IE7, XP+IE7进行,均成功!
WIN7+IE9
XP+IE7
占用乌云一点点存储空间, 俺简陋的工具,也出来露露脸吧!!
修复方案:
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2012-05-17 16:39
厂商回复:
非常感谢gainover的详尽挖掘和分析,我们尽快修复并查找类似问题
最新状态:
暂无
漏洞评价:
评论
-
2012-05-17 15:24 |
gainover ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)
修正下简要描述里的内容,打错了:IE9可以\u0000,IE7下不行,IE8未测试。IE9,IE7均可使用另外一个字符,IE8未测试。
-
2012-05-17 15:26 |
一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | PKAV技术宅社区-安全爱好者)
-
2012-05-17 15:31 |
gainover ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)
-
2012-05-17 15:32 |
wanglaojiu ( 普通白帽子 | Rank:168 漏洞数:39 | 道生一,一生二,二生三,三生万物,万物负...)
-
2012-05-17 15:33 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
-
2012-05-17 15:34 |
gainover ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)
@wanglaojiu 产品都是慢慢变安全的,不然俺们也没存在的意义了,哈哈
-
2012-05-17 15:41 |
wanglaojiu ( 普通白帽子 | Rank:168 漏洞数:39 | 道生一,一生二,二生三,三生万物,万物负...)
@gainover 也是哦,几乎每次伴随着服务器的升级都有新的洞子出现,难道是程序员更新换代太频繁。
-
2012-05-17 15:54 |
livers ( 实习白帽子 | Rank:94 漏洞数:6 | mov esp,0jmp espcrash.....)
-
2012-05-17 16:02 |
FUck ( 普通白帽子 | Rank:293 漏洞数:68 | the quieter you become the more you are ...)
-
2012-05-17 16:10 |
歌颂 ( 实习白帽子 | Rank:36 漏洞数:5 | #1024)
-
2012-05-17 16:26 |
蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)
sina骗我原来有妹纸。。。我要妹纸。。 不要娃娃
-
2012-05-17 16:30 |
zeracker ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)
-
2012-05-17 17:20 |
小博 ( 路人 | Rank:6 漏洞数:4 | 一个关注与信息安全 程序开发的IT程序员)
-
2012-05-17 17:24 |
wanglaojiu ( 普通白帽子 | Rank:168 漏洞数:39 | 道生一,一生二,二生三,三生万物,万物负...)
@小博 可以自己去尝试抓几个,sina邮件正文处的确实不多。
-
2012-05-29 12:00 |
kamikaze ( 路人 | Rank:5 漏洞数:1 | xss)
@gainover sina邮箱正文的xss漏洞很多,主要是过滤机制(黑名单+删除)本身就不完善
-
2012-06-16 19:51 |
pfdz ( 实习白帽子 | Rank:99 漏洞数:13 | Stay hungry. Stay foolish.)
-
2012-07-01 15:42 |
also ( 普通白帽子 | Rank:424 漏洞数:52 | 招渗透/php/前端/ios&android安全,广州地...)
xss帝,正如大风所说的无傻瓜式工具,导致没有普及,所以大牛你再点引爆这场战争吧
-
2012-07-01 15:44 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
-
2012-07-01 18:50 |
icefish ( 普通白帽子 | Rank:104 漏洞数:8 | 欢迎大家和我用邮件进行交流~)
-
2012-07-01 21:10 |
xsser_w ( 普通白帽子 | Rank:112 漏洞数:33 | 哎)
我第一个想的是........gmail可以不 = = 不过目测肯定是绕不过去的
-
2012-07-02 09:00 |
水滴 ( 普通白帽子 | Rank:146 漏洞数:24 )
-
2012-09-22 21:59 |
whoami ( 实习白帽子 | Rank:39 漏洞数:4 | alert\\)
拜膜gainover 今天遇到一个 利用此办法绕过了。
-
2012-09-28 17:51 |
乌帽子 ( 路人 | Rank:29 漏洞数:3 | 学习黑客哪家强 | 中国山东找蓝翔 | sql...)
-
2013-01-16 00:17 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)