2014-05-21:细节已通知厂商并且等待厂商处理中
2014-05-26:厂商已经确认,细节仅向厂商公开
2014-06-05:细节向核心白帽子及相关领域专家公开
2014-06-15:细节向普通白帽子公开
2014-06-25:细节向实习白帽子公开
2014-07-05:细节向公众公开
中国联通邮箱多处存在存储型XSS漏洞o
详细说明:先说一下测试的过程吧,是黑名单过滤机制。
过滤了script,iframe,img的onerror事件和alert函数等。
先看一看主要的漏洞测试点
如图主要是闭合<a>和<embed>标签
1.闭合<a>标签,再利用<object>标签。
漏洞处没有对特殊字符转意可以对<a>标签进行闭合
构造代码
</a><object data=data:text/html;base64,PHNjcmlwdD5hbGVydCgid29veXVufnRlc3QiKTwvc2NyaXB0Pg==></object>
漏洞执行并直接触发
插入后代码执行
2.对伪协议javascript没有过滤,过滤了alert函数。过滤alert函数没有什么用啊
可以用confirm(11)测试,还可以用document.title="Exploit"测试。
对于其他的伪协议像vbscript,ed2k,expression等自己做一下测试。
测试代码:
javascript:confirm(document.cookie)
点击链接后触发
插入成功的代码
代码成功执行
3.对div,img等标签没有防御
这个漏洞想要说明的是仅仅过滤部分on事件是不够的,要过滤全部on事件。
由于过多的标签没有被过滤掉,仅仅拿这两个标签作为测试。
测试代码
<div onmouseover="confirm(88)">TEST</div>
鼠标移动到测试代码上代码执行成功
代码执行成功
利用img标签做的测试,上图不详述
4.插入多媒体文件处也是伪协议的问题。这里要进行简单绕过。
测试代码
javascript:confirm(11) //.swf
打开邮箱直接触发
插入的代码
5.插入flash处漏洞测试代码,由于插入flash和多媒体都是用的embed标签,利用过程差不多
javascript:confirm(11)
打开邮箱直接触发
插入的代码
总结:测试过程中还有很多标签没有过滤如<base>且下面js脚本是相对路径,测试一下
没加载成功,没有再次测试,这个标签也过滤一下吧。
对于漏洞的利用可以构造js盗取cookie的代码,在这不在进行构造。
漏洞证明
修复方案:
关于防御,有两个建议
1.对<a><embed>进行http协议的验证,
2.就是对一些关键词的过滤
把onerror替换成on_error //所有的on事件都替换成此种形式
把javascript替换java_script
把data标签替换成_data
把vbscript替换成vb_script
把expression替换成_expression
把ed2k替换成_ed2k
这样就能防御大部分XSS漏洞了,即使代码插入了也很难执行。
危害等级:高
漏洞Rank:10
确认时间:2014-05-26 14:14
厂商回复:CNVD确认并复现所述情况,转由CNCERT协调中国联合网络通信集团有限公司通报处置。
最新状态:暂无