简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
, S' M7 c' F% u/ Y9 x' j6 h详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
+ \, H. P. B5 M$ f8 Z Y- N7 \
+ ~- r# o5 B: q+ m3 P8 j, D* p; N! c0 Q
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
; i! X- p: J, F而事实上。。。确实就那样成功了% A8 p0 L8 }9 { i+ ` ~
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
4 t0 e4 A0 b0 X9 D9 c% w5 y2 v 9 S* P% ]3 [" a3 T6 P7 X& s
复制代码$ ?2 w, P" e* \5 ]
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
# E2 S6 P5 {. a) g) P! v% W8 v
; \. u0 _; B2 ~1 U' B, J4 k2 j" { c9 p复制代码# \# u( [+ a, E( W, I$ J
漏洞证明:% m+ Z$ S5 {$ ?- } B" g8 b# ~
& E+ s( Z7 F' f. y9 V o5 A: g. ?1 U- I, @1 X
! s% L. L; H. J$ O3 ~6 a7 y$ N
修复方案:对xlink:href的value进行过滤。
! K0 Q3 {$ z8 j, c/ D
! D9 `9 s$ i/ f- @$ F6 f来源 mramydnei@乌云
' D+ |5 S, C, L* l, ]: X0 `8 r' R6 \
D: h) I: N/ B7 n" x$ [
|