简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
" E( b* Y3 p# `5 v) x3 s& p L详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么% `+ c! y/ ]& P5 w
q" s8 j: l) w* M9 ^5 ~
- ]9 [8 m3 w$ C/ k) \: A; X可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
1 z9 }, V( r$ n: m, V而事实上。。。确实就那样成功了
; X9 ~) P# }; q有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>9 P( Y# _2 G5 Z* G
]) {; \1 c! i; E4 a* ?3 O$ }
复制代码% p9 T+ m' V, P, k( s4 ^
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
$ g1 q% j: B8 C& B. Y# s/ U
" G# r- \( C e9 L/ U复制代码: W2 R; i. t: s) s5 b
漏洞证明:9 `) m4 I1 O4 ^* Y5 o9 {
' s- r. c1 r9 X0 ?/ e. J1 ]# i* o
/ ]0 P% i; J# s2 n4 P y. v, Z5 z4 N1 D+ g
修复方案:对xlink:href的value进行过滤。" E F t; Q/ C3 ~
' @9 G8 h- j9 w5 D1 p0 Z
来源 mramydnei@乌云 ; n$ X7 s: E, z' w+ B
c! C R- C r/ F7 R1 W
- [) J* }* O, a4 g! Z: A |