简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码* y; l9 A) |4 ?: y% P* |" W
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
1 p: W7 m. Q- V& \2 q; ^3 F
- {. Y9 N& q) _' V! O! G* ^8 x: i3 Z: I
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。" b+ m6 r; e& E% n% b+ P0 U! s
而事实上。。。确实就那样成功了
5 J) u" z6 A$ K# ]$ ]0 ?有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>/ t9 l9 p, o% ]) }. z8 V
3 B- h) A/ `8 q3 @
复制代码
+ ~' P. L" l6 G/ e$ n: x当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
' R" l% e% P, V4 x5 y } ) W* @: {1 G$ Z0 `0 S, e& {" e
复制代码
1 ^7 n' T$ }8 K# f1 s漏洞证明:9 {$ A# U# t0 v @
! V/ |6 Y3 b( h: b d3 ]( N$ c: w
8 L' n' O, }# g* p+ v7 i+ C& s: m: z: ^9 R: l; @ H
修复方案:对xlink:href的value进行过滤。- r; y. B5 L- }7 l
- P9 ^- s5 d. R8 F8 z& ^来源 mramydnei@乌云
# B( a/ Z1 M8 Y, i
/ u6 \3 k, ^3 E7 P/ G9 M# `! W( W7 L2 G
% a, d* r( }3 _. f$ l# T |