简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
- |- K& D: r" n, B2 Y详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么# r/ o3 }* X- v. a0 j& s* J
* J2 K' x# @2 N2 U- j1 ?$ p& B
: S P' D: P+ ?: n0 z, S可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
1 J0 x% C& _* k6 n1 q而事实上。。。确实就那样成功了7 X6 s: M% A: O6 p: ]7 C. @$ f3 K
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
0 Q" u. T9 j' l$ N $ i2 [; L, i2 f$ y' X) t
复制代码7 R/ Y; o* h5 @" \7 h9 t7 I& `
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
' E; k2 W4 j% T; E ! [( X; k& W, Y4 h H* ^9 r
复制代码
6 Q; p/ [% o# {1 c3 K漏洞证明:
* s }+ c# X& L
t! \- @: E2 M1 S2 F3 P5 H, O) E# m1 l* j( O* n
$ G; M' L1 L$ {3 s1 D' G修复方案:对xlink:href的value进行过滤。
) l! s+ t. ]# B9 [8 S1 | G6 j& `6 N# N: R5 g5 f$ T7 M3 X5 J# |. h# E
来源 mramydnei@乌云
* x" a/ r. \5 O8 e# V
# j5 q% ?; \3 l+ P
& y3 h1 k7 Q' l2 @7 J |