简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
& b: J# u% E& r$ }( I r/ U# n详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么0 b3 {$ c' d7 ]/ p$ \
* Z0 C# Z& v0 H
7 L/ n* d+ q. B) ^# i& M
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。. D% E4 t' k- O, h, `5 X
而事实上。。。确实就那样成功了
d9 _4 H. z* V: |有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
+ d- e( E# B# Y+ l6 k9 Z- d% {
1 x3 J& ^5 z* r复制代码( V& g( c2 s& J& S9 Z9 L: q8 I
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
0 e4 |' \5 {+ f. ^- H/ s6 ^+ l2 s# L o " N9 M) R" ~2 i, X( k) N
复制代码, H8 ?1 U# s: a( s4 |# s
漏洞证明:
5 S( W. A5 x- O/ s) K# q) h# Y3 G0 `- j) i
3 B. t& B4 e9 I8 {$ r+ Q$ {' L, K9 x5 U6 y6 F+ a- n7 L: M7 H
修复方案:对xlink:href的value进行过滤。) Z: p! J6 F- S+ Q2 X
7 _5 _6 U* s8 h! k- x0 i/ k0 }
来源 mramydnei@乌云
+ @8 n/ P' r, w) i! M3 u" ]0 t( R, w
; h* ?) l/ [; J: t |