简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码# O2 ~6 e# b+ {( H! E* t/ |
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么$ x( Y7 n: A8 a- G/ B. _8 u
/ S4 o2 h9 r/ } U- ]9 x# F1 Z0 Q- E+ ^
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。4 X6 H6 }. `; F- @5 ^
而事实上。。。确实就那样成功了
# q& ]. f5 z; B2 x3 T( L( s5 Q有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
' x# N" G8 T, E! g! Z, V9 a! J
+ n" F/ k4 E4 { V- L复制代码! l3 X) Z3 x4 b( |
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
; J( s7 d" s. P. n6 i H6 h4 A! d 3 w8 z; ? J! c) b+ ] K
复制代码
# ^2 ?+ H; @. b2 b; Y! d* c漏洞证明:1 E# K2 \. ^2 k, X& r0 z- j$ N
' ^4 r# N' |2 Z/ c9 M7 H, H( b- m/ t, q) i
9 C9 {3 }) @, W3 r' x修复方案:对xlink:href的value进行过滤。 C1 Z/ D. v( o+ N1 d4 D7 Z5 r
; h9 O) a% i, y. q1 q/ y! y( Z! A
来源 mramydnei@乌云 5 |# H3 o# f5 F5 v+ p2 l: H
. s8 c) d$ F6 ~
! \* b: ?3 L# @2 Z5 u6 t* f3 F |