简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
y2 E9 S+ e C6 B; F# o详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么/ P. |4 a! v* L
+ r3 m8 Y1 ]+ }8 f3 l+ N: l
# \$ J: b" `& v x可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
5 J/ N0 t% e9 @/ P$ V" q而事实上。。。确实就那样成功了
, O/ x( N8 n# P) U: x/ h: B* I; 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>
( B# w* v- ]' Z0 X( Z4 K# n 8 N k, m- L( y& J+ W9 Y% f
复制代码
/ \2 {: V( U# G/ Z当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort8 m# D0 S; {. N7 {1 t" L/ a
3 g6 ~5 G9 `- _ Q' n复制代码
! L) @6 S' X8 ]. a4 C$ i漏洞证明:' L6 L. p3 e0 |+ r; C
- T/ ~9 i$ c i; \ v/ s7 y# f9 N5 d
! a ^6 k8 A( |2 F! f& t$ T修复方案:对xlink:href的value进行过滤。1 l7 U! L' u: w/ B" _! w4 }
, n7 p2 y" _+ ^% p, M0 S
来源 mramydnei@乌云
5 x5 Z, d$ U# a* f: A" ~! R8 O2 v8 M, X, }/ l" d1 h* G
, V& a! s& l1 X/ A3 X& g" \
|