简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码1 j- ]+ q! @+ T
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
V3 i8 u C, W+ [/ H
' m$ H7 d3 J- ?4 D% U+ j2 i) U
$ y2 ?8 o# o$ e, U8 S4 }可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。7 a0 d5 }$ R8 |1 c2 Q1 A/ L
而事实上。。。确实就那样成功了
! Y1 s3 m2 D' F6 V3 V1 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>( o: U/ ]4 R3 n0 q: I2 Z% c H! A
4 t- G6 u$ ^3 w& Y
复制代码
! J, s4 q! h: P$ o* a+ n+ t/ k, D当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
5 Y" b4 W* P# m6 O$ q$ t + d4 v# l0 n5 C
复制代码1 Q6 ~6 l- S& D+ J% G
漏洞证明:$ H) }+ x2 y/ W9 j1 n5 D
! m* n7 ~, M! c9 E A6 d& N
) Q0 b7 Q# `4 [3 j
7 K8 a) @2 h1 P5 _! ]* D& E
修复方案:对xlink:href的value进行过滤。/ U: c v; C# \- j x$ U' X$ v8 B
' n `0 I- ?* B3 j
来源 mramydnei@乌云 - S9 V5 }# u, V1 }
) t4 Q4 t3 h- y) {8 r0 m7 p
; ~6 ?4 d" K5 U; ^+ N p |