简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
3 r$ e6 D; l- P$ e$ l详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
% Y+ V) e; q8 H# ~4 `
1 h6 L& V+ j7 W) @8 a# ?! r2 n r4 W* p' S9 ]; g/ r/ l" j
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。" x. T% f5 R9 d5 ^# X' n- \
而事实上。。。确实就那样成功了: C3 v, R4 A8 Z7 @
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
z# k* T; P; Z9 E5 N / a: _8 Y' U# v5 ?- T& k( c, o+ K
复制代码
& U' o! R0 `1 W+ |4 d当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort o& Z( Z/ I, Q& a }3 ~
. X$ O8 Z5 [" W8 n/ @7 y e$ m复制代码
" W g: Z7 Q& p, H/ {' h/ O* ~漏洞证明:
' O, ~5 k7 Z; |# [2 @2 I0 {7 k
) D ~8 e8 i2 E, q6 T$ Q! O1 N3 ^/ ~5 P+ j# Y/ l
' _9 T! ]& I* p9 x- s9 Y
修复方案:对xlink:href的value进行过滤。
) c& E1 ~/ E4 r( D( Y" t3 U( ~- J4 z* d- e, j2 p8 Y
来源 mramydnei@乌云
8 p! K, F, a( P0 ?* p7 u
5 l# s5 G* i8 a& t% V$ i0 j: v5 s+ K: x- q7 k
|