简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码1 ~$ m* k% X* [/ V
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么+ u. d6 |0 \7 i3 _" y/ A
2 ]2 w* r, V# {* U+ ]/ \& x6 A3 Y
& a5 G \1 L: s9 [& j0 A/ S: t! g可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。( P$ S# d S; k( @9 X' n( D
而事实上。。。确实就那样成功了' U h) @ ]7 A) D$ J2 ]" A
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
0 n* l5 n1 c K: H ' W% ^. v& G* A2 h O
复制代码
3 M2 H4 M; Z9 t7 J" h4 \" J( s当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort1 Q9 x7 V6 }. H2 ]. J
; b/ j3 c: Y4 A. W7 I复制代码
. s1 L% Z* B) c# u漏洞证明:& ]3 s1 E0 Q, a9 g# B0 G
7 E$ \) O( E" ?
# k* S0 D4 L0 V: |0 x4 x
" e6 T7 o+ m) x6 R+ e9 d
修复方案:对xlink:href的value进行过滤。: _1 h6 Z4 R4 t' R I1 o# D* H0 C0 \
% d$ t3 D! F% c2 O; \
来源 mramydnei@乌云
: e% h% A" M4 V" z( n# F
+ G3 F* ^5 |; i. O5 d" W1 f) [' U
- \7 ^" f4 D- m4 K2 E) l |