简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码3 G% K0 Y( e0 j1 y+ M0 Z% M
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
. g; p( a& B; }$ H6 p7 U' s& J) |, A6 x- M
8 k# t9 s) \3 S/ V5 s c
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
) [+ d' m& k( X而事实上。。。确实就那样成功了9 g. [4 n. N* C7 E `7 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>
6 }2 t$ T6 X4 c0 M; b; J & U1 o- {1 u3 n- T7 w. S
复制代码! k$ d3 D' Z3 ]7 m( T
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
3 }! X T4 V0 W8 @( L
# @: _0 m* r/ k. c$ Z' F) ]复制代码
! K" v1 N, g* f. H0 A" k m漏洞证明:
, K( I( d' s' F( |0 I; e8 L; I6 N# ~+ @
; v4 \. G5 N+ \9 r8 o9 g# a
& U' y% C2 R: q5 Z: W3 c
修复方案:对xlink:href的value进行过滤。' m% _( b) S; M2 D M
4 W* r+ B- }1 F% Q5 A% j来源 mramydnei@乌云 . y+ l, Q- G. g5 e+ ]
* @4 W% t Z- B% S' b
$ Q& w2 Y9 a, I6 i5 }4 g
|