简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
4 ^( i* C0 a7 \/ F/ d详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么& w6 O# R* R# D
3 w+ o+ h% h! ~% z* D) u" p4 {; `* i+ y- R- |
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
* l0 s5 y; H- e2 l& Q而事实上。。。确实就那样成功了# G% s4 H- e3 E) j4 \3 y& B
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
% _- t! c; C; |2 F
* v7 P8 X9 V5 o$ r0 T复制代码5 ?; V( N0 W5 q* y: E# U
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort& ^( e- J9 w& ?) ~
6 r8 l3 y, Y$ a, j6 _
复制代码 t3 s3 c7 `6 z% P3 p
漏洞证明:
! c; U, O6 a2 Q) J) k8 H g$ ~+ j% Z1 @( N" _* d& T4 Z
& e2 X4 a" D6 b' t& y9 C, Y
+ i }# w) v0 o. ^5 @2 n修复方案:对xlink:href的value进行过滤。
. _; a* Y* H* Z4 y! u$ S/ u( z2 `
来源 mramydnei@乌云 9 x- r& c/ @; N, \
2 d0 B3 p2 _$ U" ~/ I; Y9 V5 t( Z% E H0 b# @& L( |9 v
|