简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
- ?3 E' y3 r5 t详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么* O j! w$ V% }# E& ^& U; j
9 R [9 o2 j8 @: ?, F- j* N
+ b% r& y& ]- D# [( K
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
9 s: I- H+ i3 X而事实上。。。确实就那样成功了
( g7 Y6 J% ~" Y4 ~ Z3 S有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
3 ^1 K: x8 W" L; k / v) t; y1 p0 {4 }" o2 V) A
复制代码
e1 r+ Q* Z$ r当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort6 ^# s7 S/ M0 c) t9 C
1 G- F; T; _9 e: j7 Y6 w- T& t复制代码; |- S; T# ^4 E: v! X- l' V U+ w0 V
漏洞证明:
) E& A3 X6 Z! D& B! l' L: w+ b- j
: D$ Y& y6 u# u7 }0 |
8 z2 m' S K( E; `/ @5 n5 V3 ]
9 e! H; n) L6 b* N" }; D修复方案:对xlink:href的value进行过滤。; L8 e) A9 e! Y7 S
5 s( }2 X8 E6 o5 x8 q4 N来源 mramydnei@乌云
' j! d5 P# U3 |3 p4 \$ M
% ^) O# ^4 p, H5 F. H, B5 A# |7 T/ U0 f
|