简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
, u' e0 s* p; T# D c3 A+ ?, r! f详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么& z2 G) E0 o( [ H$ p! l' E6 p
+ G% u& Q' J H; }( s9 B/ o7 c' @2 q# K* [( h
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。; j: E* P7 c" X/ g1 x5 T/ ?' u
而事实上。。。确实就那样成功了3 [7 p, J3 ]4 ^9 ]4 I6 A+ ^
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
9 {: I Q2 q4 p( f 9 B) A* N" |+ h' _ O/ q! t
复制代码* X7 F& A0 Z5 ?$ I9 h0 I
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort2 b& n* g* G% Y% W) H1 q& b% I
/ x, X. T3 M6 M1 c: z' x复制代码
9 R% x% R9 a+ h2 [5 P漏洞证明:
% o9 ^9 D' Z6 q
9 ?3 @: |" d1 O- F& \! C8 x4 v' _5 q* t
5 C: U: |4 L |, ] u4 ?7 U修复方案:对xlink:href的value进行过滤。
! B3 L* b. c" h3 `4 _+ e# m
1 ?, R. H F9 t% J O. U: u来源 mramydnei@乌云 & O* {, o. J) V7 {2 S" y2 Q. a8 i( ~
3 W5 Y0 v8 S0 B/ h
! Y% P2 x- U7 P6 Y
|