简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码8 P* W4 p# `* H; V- V
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么' G6 d6 `( | ?4 e5 |
9 v9 }5 g& J( B$ v6 d1 r3 N# r Y' |6 w. f+ q$ x/ J' `; n
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。# K. q: w) G8 S" V2 O. x! B
而事实上。。。确实就那样成功了7 w4 e5 g2 G% G1 E* h9 f
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>( T- c, y7 `) }( K" R: q$ ]+ @: S+ S
% }3 e7 P- r- v1 F* A2 e1 r复制代码5 a% c" s. a' I' w/ }9 G
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
" O+ y9 b7 N+ Q3 G }2 ] - `5 k" e' h, h
复制代码% M6 D3 N, A; {8 ?5 Z
漏洞证明:7 `* s) }* P D2 ?; Z
/ i$ M0 Z5 h( H' R! r4 K
/ P# b7 D. a% V% r; {1 Z
$ U8 V S7 G; D+ \修复方案:对xlink:href的value进行过滤。
8 T9 a! w5 K1 I G" F( T
8 ?& B( G0 U: f/ n% _' q来源 mramydnei@乌云
" p# v1 t- d- h5 z( T0 g6 B$ |- c6 L, ]6 u) c, b; X! u$ ^& G
/ L. n( s- f6 d$ J6 j6 D3 D
|