简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
, p- _2 \+ U* u6 X* N$ [! Z0 O, M( R- ]详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么- W1 [& b; f0 a$ j7 c4 F
1 W/ f. v* M2 d
' c5 H$ ?5 h! W3 a5 _. M( {& o可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
& c) T% N" t0 X& c: q K2 K6 o而事实上。。。确实就那样成功了
5 ?/ L3 z) F* p有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>- P$ s+ U9 x% z; d' X2 b
( ~9 j* O4 j, h5 H2 B0 h) w复制代码
5 {, @% l0 ^# {; D当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
5 Y" ?0 K. m W1 C8 ? # ?7 t( k) ~) c# M
复制代码5 a( e7 P! m# S# ~& w
漏洞证明:
" ?/ B& H3 H; W
, j# Z! J5 e4 Z
2 p- ]0 a8 Z5 K: Q, U9 u
0 w# {8 p& Y& b/ ^7 \修复方案:对xlink:href的value进行过滤。
; O9 \. A8 _! `8 h& A) I& o, v9 y6 U
来源 mramydnei@乌云 ' m$ P& A; g6 c9 U
) t# J9 v' f6 u4 Z: j% A% G, A/ d# X8 k( b
|