简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
+ S5 {4 x0 T1 z( }2 L+ L C' j详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
6 w8 o2 f2 J7 a( {' s: S v/ Z/ b3 s
( f& e( R- @, v$ M! X$ z c: _
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。8 W2 W* x% p( f! t
而事实上。。。确实就那样成功了0 u( O- g$ {' o* P
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>7 a# h* K4 C3 C( |
- Q* u5 V* s- f) c/ @" X
复制代码$ [( D2 n5 _" b* [% M# g
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort( H# w8 r6 E( O5 U9 G% y6 _4 Y) d
0 j: m# a" f3 K+ u9 ]复制代码; Q6 |5 k) ?. A% B
漏洞证明:) G/ W0 \+ K0 m1 ?
4 B* U% q, O' _8 f6 x0 h7 o2 {& b7 ~
$ ?6 @+ T6 d% N8 N. Z修复方案:对xlink:href的value进行过滤。
* M8 D( q' \8 l2 ]
& H9 ~2 {+ c+ @* p来源 mramydnei@乌云 - T) J9 v2 b B: `
$ Q- n! Y% a9 H% \# r
% q1 t! K& ?7 s1 p1 P; e |