简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
V% }7 n6 ]6 u7 T1 u3 ~详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
; N; R7 [7 z: \0 E6 y7 f& [: ^0 R" C+ j
( S- F- O% Z1 y- \1 R
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。7 i, b! L* R( ]) V, Q, m6 S6 { n0 d
而事实上。。。确实就那样成功了, v% q) m3 I- {1 A8 d, G7 y
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>1 [; ^8 r/ {8 r! @( }' u
* y7 c' I! j9 J' V, H: }
复制代码
" ]! B4 a$ V. b4 m3 k当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort, ?0 ~" l z X
5 W& u Z5 V1 L9 r- O
复制代码1 r+ _2 r& E4 M2 U! z/ |
漏洞证明:3 u) ^8 K3 y- b3 l1 I: @( Q
7 m) R7 w' q' e. _
9 y( j' Y9 L K$ u) x
4 t) y7 `3 I" E7 _% [% {4 W8 f$ g5 J
修复方案:对xlink:href的value进行过滤。
+ o6 U) k9 v0 q2 [7 P ?: y$ X7 G% G% u- d! Q2 B! h2 G- I6 F
来源 mramydnei@乌云 5 V2 g$ W7 d+ L; ^ M4 s
1 |4 f- ?" @) D& n' k7 ` M$ z2 o3 n4 m% Y% q3 ]/ N. N1 T
|