简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码! M) C; _; @/ _
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
, Q4 a) X @$ C1 a' {
2 S3 L3 m' A- G8 c/ \! V( V* a( s. j) ?, e2 H& I
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
: @6 a; Y b! w" w3 G! [+ S1 H而事实上。。。确实就那样成功了
/ e$ ~- i7 s3 A( ]7 _7 s有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>; L, X" d2 L' C p$ j- p
- d7 {3 ` }3 B+ H4 l
复制代码
2 V4 a! O* I' `! ^当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort( d# n+ |+ w% }9 x7 Y" T$ f
6 X4 D6 X& z, W$ d
复制代码
5 h. Z$ m c- g+ c3 m- w4 P: }漏洞证明:. U) r) ]2 G# d' P- k, o# W8 l% j# d
9 f2 q4 ^5 Z6 A# a+ z" W3 v& W8 O/ @8 q' x
" ]* Q; ~! R" n) r修复方案:对xlink:href的value进行过滤。
) e' }- B3 Y. f. z% B
" b. N9 q/ i& V( ^来源 mramydnei@乌云
- A. |9 g5 H ~5 R9 b/ c' B0 Q, Y, u
5 o) R+ A+ H: M1 E( O" G7 l4 V' e8 c' x" O9 B1 c2 {
|