简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
% X; P$ L: W" R9 ^( D# f详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么) f1 h! } e# ]) \
/ r! p, ]! `/ C' D
2 t$ H' U4 J" v# Z: M
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。! Z; B, c: Z0 C6 N9 t! w
而事实上。。。确实就那样成功了
# U& l1 V5 m9 C! X; M% Z7 {3 m有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>5 k) E/ `" [1 b4 u/ {
. r5 `4 u; F6 a" V: t) A- K复制代码( V! |8 f9 E/ M) W3 N% }+ _" r
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort, Z+ C% J. u* B) ^2 e8 a
! d( ]. ^" f1 T" D3 c: L复制代码% C( y# w6 M+ [& `$ x2 W. X5 j- v! x
漏洞证明:
8 G; C q# D7 ]; z
" d8 r9 u' q+ R( r& M& I f+ Z
2 V( B& P1 Q* ]- e1 z, ^. B; s9 N8 e# _3 r$ I
修复方案:对xlink:href的value进行过滤。+ F D! P$ V+ R4 ?, |6 L
3 N9 M- c& Z2 ]" d- L来源 mramydnei@乌云 4 L ^7 ` {) V2 O' _. J3 k
- ~. M0 R) h. o/ [$ l6 Z3 q! W! G
& c* G& \9 Z5 R3 I
|