简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码. [# ^/ A7 g3 J7 C0 L( \/ d
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么& D: |9 J. f5 F- e0 R) C
4 R! D% F% `% a
; Q& t0 @6 K- V) d' K8 {+ M* F可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
0 s: Y: q7 @' [% y1 g# \* R1 h7 `而事实上。。。确实就那样成功了
, e. S6 w* w8 t( D7 d有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>1 U* z+ d$ G! P5 \) d. I
; J+ w Z. H! R" P# {
复制代码. Y$ F* `$ S2 Z% h) ^0 r' q( r
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
" J2 F' ~, v" U" Q1 L : K$ L; C( Z/ B, v
复制代码
/ ^: }. m2 M8 e! e2 Z/ C漏洞证明:6 Q- ^* k- g+ g) _3 ?) {
/ r7 k' r/ r O9 n: q/ T- Q
7 f: M7 R5 c" v+ p3 L
( b3 R& o4 b$ P: ^6 `. J; d) j3 C修复方案:对xlink:href的value进行过滤。& [4 K e8 U. e# J$ Y& C
2 X) v5 h' z/ G( @' u来源 mramydnei@乌云
1 w* n; ^$ I) L
* v- ~, _# @1 P; X5 o q G2 v$ m. L6 E2 U$ ^/ m' Q- A1 o8 o, t
|