简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
2 O6 b. B \% f L' h详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么6 q% u% |$ z Z# ^8 L2 n
3 [6 X+ m7 x7 a# r, |
i& R, e" |! _0 x& f
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。9 X8 z# _% {% x8 h
而事实上。。。确实就那样成功了
( d& ` S0 L' ?6 i: V有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>8 T* x! g- `2 R" d& r+ E1 ~3 Z
z' }" T. j% Z8 i+ F
复制代码
0 X, F- Q8 u4 y/ \当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort, g" y8 l* a! x) x- R% H
3 Q. {5 H0 z' X/ i复制代码! V, ^; Y! D& j/ u$ F0 X- L
漏洞证明:
9 f" _/ Y) O& r* @% w6 Z. P# ?
: @' P& k2 W! L; u) o
# R9 d& e% e& l7 I( @* K# P7 ]/ L. V& O& |
修复方案:对xlink:href的value进行过滤。: p% ^" G! M1 Q
% p2 d8 X- ?6 E6 B来源 mramydnei@乌云
# x9 D3 y# ?5 |7 R, c$ E" n# t8 A) ]/ J' y
2 B* @4 u* ~- o$ j9 F1 G |