简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码, K5 P: P' d& i# \; Y! J0 r" d4 c
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
* `$ [; ~/ r" k- w% f, p
! }& r, C" a* A1 w+ ]( P
& Z& S. e3 c" {$ I6 r" d Q3 J$ U可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。3 l% k- y- u7 l* j7 g1 [# `
而事实上。。。确实就那样成功了% f8 m9 `$ r& Y$ u, d7 @/ v3 j
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
0 P4 S. _; g: v* D5 x
: ?. f- p( f g- z0 g1 {复制代码2 v9 f5 j- ~& D n, q. x/ N
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort! W. t+ Y" K! o4 l3 A* o& I7 Q
; x; I R- Q8 n( V7 _+ G& k# e+ I( Y复制代码
" u/ g5 a( I: J; X漏洞证明:
, W+ B5 x( v0 `2 d# T( S* \4 J/ ^% w6 P
% f9 v! G1 u6 a, a. L- R+ n
# L$ M$ {+ M% D3 G修复方案:对xlink:href的value进行过滤。; k% z$ g- y5 s4 {# |5 t4 H
) ~2 O) ~: u2 j' d7 @% v3 z7 N( J
来源 mramydnei@乌云
2 I3 J i! U9 V) Y' z# C! n% m( s- l+ K7 M' _/ f
( {# A4 F5 E( e% U |