简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
1 K6 y6 _7 X! ^4 Z% N' x/ M详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么' b: }4 \) J, B" l: x# @6 |! q
# s9 X+ u% v" \+ F1 n& |$ ?
% y m5 O/ G# v0 w# _/ n可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。3 b" M# w. h0 N' W; p7 ~
而事实上。。。确实就那样成功了
" i/ L& `* X4 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> X7 O$ r. [6 n2 |* Y% g+ ?
- W2 O( K$ Y0 D5 G+ \. g: j复制代码
+ a9 a* C9 C/ S" A2 f# o当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort" w& J N2 d5 E6 Q/ l# |
* x. [: o+ K0 @1 D: [, M( D2 ]复制代码6 t+ I0 y n; C6 s! y
漏洞证明:* |% v( N5 ]/ k8 ~+ ?; d
+ X5 K& i9 H* W; {5 \# O
( i7 n3 y% `( v6 y( h7 s& D4 F# x0 H; R9 J, u/ X* n' R8 n1 [8 p# t6 {% ]
修复方案:对xlink:href的value进行过滤。3 I; |2 n8 Y% b) u( T y) O: W4 [* S
, @* e6 ]. \3 a$ M$ B5 s- T
来源 mramydnei@乌云 8 r' D- Q4 S3 x) q: j/ b
; y. S; T b9 O \$ ^
5 }( c6 ]& `6 D9 B7 r# q
|