简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
5 K# N1 {1 A- ]+ {/ _8 _& M详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么, z, U3 }, C4 h7 l" X8 Y
/ T& T4 y- q# C) D
, a2 b8 Y* a, f) i; v可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。1 q3 B' {: _* p; [+ M+ X; {
而事实上。。。确实就那样成功了4 V9 o% M9 e; I( ^3 l
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
: ]! V" q. M) W# X
0 e: h$ w% S0 S* k+ O复制代码4 |5 E l5 G, L
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort/ n7 b8 w: R/ j. p* Y
3 m& Z, E5 w$ S; b' W
复制代码# C8 [7 Z& G5 A& C0 `' D
漏洞证明: C/ @: A' H9 N
( S* O5 ]3 w$ I7 f+ N2 S( ^; |
; v# {* d. L( N6 B4 ^8 ^. L+ s$ v, b$ v3 J
修复方案:对xlink:href的value进行过滤。6 I% n9 n) K9 R+ A
( J3 q+ ]/ p" M3 U ?来源 mramydnei@乌云 % d: k8 R8 R W7 S) C) i1 G% i
" c' l) n9 _% n* {0 F/ M
, _, B- W( i D+ x |