简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码! V7 ]+ m( T: g# m" w
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
/ [- R6 A5 M v4 K& \4 T! b* ^4 X. v" N3 a4 P$ k
9 z# I: u( D5 ]0 S3 q8 ?* d
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。) |& V/ B- \/ Q
而事实上。。。确实就那样成功了
5 i ]8 h2 T. O0 Z# O有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
1 Z4 m. x; e! J/ ?
6 _" u6 C' I! h% h0 J复制代码
" ^0 o% W5 j) I当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort& b* m' j! d: F& N `% G6 E% |
! n' a0 V% B% ^6 V% u4 ~* H) D复制代码 Z# S1 W" Q: q, T' m% J
漏洞证明:/ E% o. L# q: s R7 T* u1 H
`7 h) A/ ^2 l; H* [! h; T- x
$ @, d4 c$ y- C3 }& ~( h+ N* r1 a9 D8 z9 H1 w1 z
修复方案:对xlink:href的value进行过滤。
' N- _1 ]5 D, c8 g3 p; \
5 g C0 A+ H. C来源 mramydnei@乌云
& D+ k' |! m9 n% b
1 |* K9 a' D( F7 d/ Z$ l; r* W- Y0 s4 C& E
|