简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码3 M- f' C# J- n5 m
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
. M' e' |# [4 w
6 I( Y: a6 {7 \3 _2 r& U m. u% J0 Q1 g
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
& X L+ _% M- I/ b而事实上。。。确实就那样成功了
; h+ @+ M$ T1 M' M% C x' ~有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
& k- a* ?; _* c% f2 P8 e, G
/ }5 l; |) J6 D& ~9 D! i6 A复制代码
+ S% @0 [) {/ b当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
0 U6 b; {0 I5 u# Q3 Y; I% h
! h- v2 M* }% N g, ?复制代码 z7 {* g* z! Q( v' O- ~
漏洞证明:
9 k# q. [) @! u! E8 H
5 @. [( Y* p* N$ r/ h% H! f. j
0 G2 \* U; f& t' H
Y% h' z+ S4 J; w0 @! K" p修复方案:对xlink:href的value进行过滤。7 K9 c0 c; p6 D4 b
. t B" B& @- w来源 mramydnei@乌云 6 \. v- g! u" Q8 Y6 a3 v5 h: V
K0 R2 _$ V+ u, k; d& t: [9 U% p' p% r2 T- I& ~" | A
|