简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码2 ], c: e9 v, Y0 v; _( s
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么, I- b- Q+ d1 R
* }0 |1 s7 I w
) |) Q" P6 O( @+ O; g
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
' J1 A% q5 N \1 m# p而事实上。。。确实就那样成功了* h+ q# ]$ M, d& d4 U; \6 X$ S
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math># C, V/ a! C3 o7 w" h" f6 I" s9 l
0 Y4 z; V4 |3 U: L% H5 Y# o2 c2 P复制代码8 D; Z; N, x8 n: W
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
/ k) \- F0 y, x$ _
3 T9 C+ v) n5 @7 b& { K& D复制代码
6 `$ e) {1 _1 B! C0 }漏洞证明:
: F: |( L5 G% M D0 N0 r5 l# s0 V7 _' E$ p4 U) h9 z l v8 f, C% o
6 E4 E% {) K% A" |9 Q
P4 r N) e% \- N3 E! P" k修复方案:对xlink:href的value进行过滤。
# D+ G' ~1 [% v/ M) p0 i( p7 F
6 H) ?; s4 C! {& c来源 mramydnei@乌云
# D- D0 `# p/ j; F) S
6 L7 O( x% X3 p w0 C: l9 j1 l
4 W; |6 k! @7 ~9 l: Y |