简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
T. u5 q5 P. l+ Q0 E详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么5 }, e( Q8 a# A
- y% v3 I* d4 B' }- A' F
% K& u# p: e' N8 l7 i可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。6 ^, a" U9 v' C1 K; K
而事实上。。。确实就那样成功了
+ t4 J8 K# j( d$ y1 ~; x有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
5 \4 P0 Q" D8 r! ^& j 4 f0 k4 r% }; m2 t3 N! i
复制代码
, U! O% g0 ]: \) S" @% {. u3 k当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort9 Z9 @, n& [6 X( b% Y1 E! N. n
# ]8 {- U( e. e, w. |5 b3 @ n
复制代码 [. J6 U. G2 p1 g3 f3 [( k
漏洞证明:
8 k& b* i3 S. s, z3 G) R+ z! Q: @# H& F( W' P+ C8 E$ w
, J, j O' M% ?/ s# D# P$ g# O) ], t: i T
修复方案:对xlink:href的value进行过滤。; ~- z% Y( }' I W
8 ~3 }4 z- _. ^+ V8 S- K. K. C, F
来源 mramydnei@乌云
( r2 I% G5 Q; a1 M* o8 f/ _- ], t# Z! g5 v2 Z$ s: [
; M: m0 H9 | M- f5 Y U2 I9 B |