简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码 X/ R# q$ x5 l: n# T* D
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
, ?$ w- X# |; g+ Z3 {& L. H
) v; E+ p. |; l3 r: f: H: ?1 H2 w( Z
4 m* F, T* B. E2 ?可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。0 x8 Y! r I8 B" M% D( U3 o
而事实上。。。确实就那样成功了& h& j* P M2 B* J4 l7 T
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
+ e6 w9 z7 g; P9 ~6 q
, Z, y% R B/ {4 S9 R( u) [ b复制代码0 x9 t4 Y. E' L! ~, @
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
' ]7 r( {" F& a+ _1 |6 N
2 o* H) X' G) X9 }. i. r复制代码
8 ?/ J8 t; p; n8 [0 i漏洞证明:$ P/ X( ~" g1 ~# \
; X" P2 l5 `& F* v" f5 g
- k9 N- e! l: k9 |
$ l4 `. I) n" p; ^7 a修复方案:对xlink:href的value进行过滤。
* |4 P! v7 j2 }6 l j' A
. R5 ^( I4 f; W, G9 K, y来源 mramydnei@乌云
0 P4 x' H/ N1 G+ x! y) i1 a7 F1 t4 _) c- j
" N o1 x$ ^6 V0 g& G) s8 s; Q% V |